我一直在寻找matplotlib中的新线条样式,唯一可用的线条样式是[“ - ”,“ - ”,“ - 。”,“:”,]。 (样式选项['','','无',]不计算,因为它们只是隐藏线条。)
Matplotlib pyplot中真的只有4种线型吗?是否有任何扩展可以添加更多的线条样式?有没有办法自定义线条样式?如下三个字符行样式如何:
这些只是扩展线条样式范围的一些想法。
答案 0 :(得分:15)
您可以使用dashes
kwarg设置自定义短划线样式。
来自docs:
设置破折号序列,破折号序列以点开墨水。如果seq为空或seq =(None,None),则linestyle将设置为solid。
以下是基于您的一些建议的一些示例。显然,还有很多方法可以自定义它。
import matplotlib.pyplot as plt
fig,ax = plt.subplots(1)
# 3 dots then space
ax.plot(range(10), range(10), dashes=[3,6,3,6,3,18], lw=3,c='b')
# dash dash dot
ax.plot(range(10), range(0,20,2), dashes=[12,6,12,6,3,6], lw=3,c='r')
# dash dot dot
ax.plot(range(10), range(0,30,3), dashes=[12,6,3,6,3,6], lw=3,c='g')
答案 1 :(得分:1)
我想从 2021 年开始添加一些其他信息。 在 matplotlib 版本中。 3.3.4 破折号选项略有不同。您首先循环显示破折号的类型,然后添加比率。
import matplotlib.pyplot as plt
plt.figure()
# dashed with dash length 10, space length 5
plt.hlines(3, 0, 5, linestyle="--", dashes=(0,(10,5)))
# dashed with dash length 5, space length 10
plt.hlines(6, 0, 5, linestyle="--", dashes=(0,(5,10)))
plt.ylim(0,10)
plt.show()
有关详细信息,请查看 matplotlib documentation。