使用linestyle
"dashed"
绘图时,有没有办法在连续短划线之间设置空间大小/粗细?
我正在寻找的是使用以下线条可以自由绘制:
-----
- - - -
- - - -
下面是一小段代码。我当时认为这将是线型选项的问题。但是,找不到它,也没有找到SO的存档。
import numpy
x = numpy.linspace(0, 100, 101)
y = x
plt.plot(x, y, "r", linestyle = "dashed")
plt.show()
答案 0 :(得分:1)
Line2D实例具有属性dashes
,这是一个数字序列。第一项是第一段上的长度(以点为单位),第二项是段外,第三项是开,依此类推。序列在整个行的长度上循环。
所以(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()
答案 1 :(得分: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个断开”。您可以根据需要自定义传递的序列。