我正在编写一个类,以便生成符合我的几种需求的绘图!
我特别关注每个pyplot用户知道的线型的周期(颜色和线型),共有4种线型('-','-','-。',':')
但是有一个选项..“破折号= L,ES”(行,空白空间),目的是创建之间具有不同间隔的行以进行跟踪...我如何在线型循环中管理此行?
好吧,我知道元组的sintax ...但是我必须在哪里使用它?
这是我到目前为止定义的样式
def linestyles(self, style : str = 'ls1'):
linestyle = {}
linestyle['ls1'] = ['-', '--', ':', '-.','-','--',':','-.']
linestyle['ls10'] = ['-', '--', ':', '-.','-','--',':','-.','-','--']
linestyle['llt8'] = ['-','--','-','--','-','--','-','--']
linestyle['lp8'] = ['-',':','-',':','-',':','-',':']
linestyle['llt10'] = ['-','--','-','--','-','--','-','--','-','--']
linestyle['lp10'] = ['-',':','-',':','-',':','-',':','-',':']
return linestyle[style]
我必须在其中指定破折号??
编辑问题是我不知道如何正确循环进入它们:
linestyle['ldash'] = ['(0, ()))','(0, (1, 10)))','(0, (1, 5)))','(0, (1, 1)))']
如果我将其插入列表中将不起作用
编辑抱歉,您在回答开始时就告诉我,不能是字符串!我解决了!考虑这个帖子关闭!非常感谢
最佳答案
元组不应该是字符串,而应该是python元组。即使用(0, (1, 5))
代替'(0, (1, 5)))'
。
通常,一种指定线型的方法是通过linestyle
参数。您可以遍历列表,
import matplotlib.pyplot as plt
linestyles = ["--", (0,(5,2,5,5,1,4))]
for i,ls in enumerate(linestyles):
plt.plot([0,1],[i,i], linestyle=ls)
plt.show()
或创建线型循环仪,
import matplotlib.pyplot as plt
linestyles = ["--", (0,(5,2,5,5,1,4))]
plt.rcParams["axes.prop_cycle"] += plt.cycler("linestyle", linestyles)
for i in range(2):
plt.plot([0,1],[i,i])
plt.show()
在这两种情况下,结果图都将如下所示
另请参阅linestyles example。