我正在编写一个类,以便生成符合我的几种需求的绘图!
我特别关注每个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()


在这两种情况下,结果图都将如下所示

python - python pyplot产生带有不同破折号参数的线型循环-LMLPHP

另请参阅linestyles example

10-08 02:05