Matplotlib:如何制作由点(圆)组成的虚线?

8iwquhpp  于 2023-01-09  发布在  其他
关注(0)|答案(5)|浏览(135)

我有两个平滑依赖关系y1(x)和y2(x),其中x是不规则分布的。我希望这些依赖关系用虚线(linestyle = ':')来描述。我现在在一个 *. pdf文件中得到的是here
下面是代码:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

x  = [0, 1, 2,  3,  5,  7, 13, 14]
y1 = [3, 5, 6,  8,  7,  6,  9, 10]
y2 = [1, 7, 8, 10, 14, 18, 20, 23]

ax.plot(x, y1, 
        linestyle = ':',
        linewidth = 4,
        color = 'Green')

ax.plot(x, y2, 
        linestyle = ':',
        linewidth = 4,
        color = 'Blue')

ax.set_ylabel('y(x)')
ax.set_xlabel('x')

plt.savefig("./test_dotted_line.pdf")

我用dashes = [2,2](和其他组合)和dash_capstyle = 'round'玩过,但结果看起来很糟糕。
有没有可能有一个虚线组成的'圆'点?

holgip5t

holgip5t1#

试试这种线条样式:

ax.plot(x, y1, 
    linestyle = (0,(0.1,2)),
    dash_capstyle = 'round',
    linewidth = 4,
    color = 'Green')

输出如下所示:

enyaitl3

enyaitl32#

这就对了

ax.plot(x, y1, linestyle = '--',
    linewidth = 4,
    color = 'Green',
    dashes=(0.5, 5.),
    dash_capstyle='round'


您必须使用破折号,设置dash_capstyle='round',然后使用破折号=(ink_points_on,ink_points_off)来获得所需大小的点。

xmakbtuz

xmakbtuz3#

删除linewidth,然后打印小方块--够好了吧?
您也可以使用dash_capstyle = "round"对正方形进行四舍五入。

h6my8fg2

h6my8fg24#

如果你想要虚线后面跟点的行,使用linestyle ='-.'

x.plot(x, y2, 
    linestyle = '-.',
    linewidth = 4,
    color = 'Blue')

如果你想让你的线为每个数据点绘制圆形标记,那么使用marker ='o'

x.plot(x, y2, 
    linestyle = '-',
    linewidth = 4,
    marker='o',
    color = 'Blue')
cwtwac6a

cwtwac6a5#

您可以使用matplotlib中的markevery属性

ax.plot(x, y2, 'b.',
        markevery = 4, 
        linewidth = 4)

并使用它与任何标记!

相关问题