在matplotlib中以编程方式设置行属性

时间:2016-04-16 13:10:17

标签: python matplotlib attributes

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

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 

1 个答案:

答案 0 :(得分:1)

您可以使用,例如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之类的问题,以便更多地了解此选项。