我正在编写一个类,以生成符合我的几种需求的绘图! 我特别关注每个pyplot用户知道的线型的循环(颜色和线型),共有4种线型('-','-','-。',':') 但是有一个选项..“破折号= L,ES”(行,空白),目的是创建要在它们之间使用不同空格的行以进行跟踪...我如何在线型循环中管理此行?
我知道元组的正弦...但是我必须在哪里使用它?
这是我到目前为止定义的样式
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)))']
如果我在列表中插入它,将不起作用
编辑对不起,您在回答开始时就告诉我,不能是字符串!我解决了!考虑这个帖子关闭!非常感谢
答案 0 :(得分: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。