1

有没有办法在使用绘图时设置连续破折号之间的空间大小/厚度linestyle "dashed"?我正在寻找的是可以自由地使用以下线条样式进行绘图:

-----
-  -  -  -
-     -     -    -

下面是一小段代码。我在想这将是线型选项的问题。但是,找不到它,也没有在SO的存档中。

import numpy

x = numpy.linspace(0, 100, 101)
y = x

plt.plot(x, y, "r", linestyle = "dashed")
plt.show()
4

2 回答 2

2

Line2D 实例具有属性dashes,它是一个数字序列。第一项是第一个在段的长度(以磅为单位),第二个是段外的长度,第三个是打开的,依此类推。该序列在该行的整个长度上循环。

So(10,5)表示:上墨 10 分,离墨 5 分,以此类推……

干得好:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 100, 101)
y = x

plt.plot(x, y, "r", linestyle = "dashed", dashes=(10,5)) # short gap
plt.plot(x, y+5, "r", linestyle = "dashed", dashes=(10,20)) # long gap
plt.plot(x, y+10, "r", linestyle = "dashed", dashes=(5,5,5,5,5,15,15,5,15,5,15,15,5,5,5,5,5,35)) # SOS
plt.show()
于 2015-09-07T22:45:03.147 回答
1

您可以为您的线路指定一系列开/关破折号,如下所示:

import numpy
import matplotlib.pyplot as plt

x = numpy.linspace(0, 100, 101)
y = x

plt.plot(x, y, "r", linestyle="dashed", dashes=[3, 1, 2, 8])
plt.show()

这意味着在循环重复之前,该行将是“3 个破折号,1 个破折号,2 个破折号和 8 个破折号”。您可以根据需要自定义传入的序列。

于 2015-09-07T22:46:33.590 回答