我有一个用于标准化绘图的模块,并希望向其传递一个元组,该元组具有绘图中每条线的线属性。理想情况下,它将像下面的代码片段一样工作...为了简化起见,我将元组抽象为简单的字符串。这会产生一个错误,因为它不知道如何解析我的字符串。

import matplotlib.pyplot as plt
x=range(10)
y=range(10)
myStyle = "'b-',linewidth=2.0"
plt.figure(1)
plt.plot(x,y,myStyle)

ValueError: Unrecognized character ' in format string


可以用其他方式实现吗?或者..是否有替代解决方案(类似于Matlab),在其中我为线分配了一个句柄并在这样的循环中访问其线属性?

myStyl = (["color=b","linestyle='-'","linewidth=1.5"],  )
lh = plt.plot(x,y)
for ii in range(len(myStyle[0]))
    plt.setp(lh,myStyle[0][ii])          #<----what goes here

最佳答案

您可以使用例如eval

import matplotlib.pyplot as plt
x=range(10)
y=range(10)
myStyle = "'b-',linewidth=2.0"
plt.figure(1)
eval("plt.plot(x,y,"+myStyle+")")
plt.show()


但是要小心。检查诸如this之类的问题,以了解有关此选项的更多信息。

关于python - 在matplotlib中以编程方式设置线属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36664593/

10-12 16:34