我有一个用于标准化绘图的模块,并希望为该绘图中的每一行传递一个带有线属性的元组。理想情况下它会像下面的代码片段一样工作......为了简单起见,我将元组抽象为一个简单的字符串。这会产生错误,因为它不知道如何解析我的字符串。
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
答案 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之类的问题,以便更多地了解此选项。