我想在Python(v2.7.12)中创建一个单独的类,它将把绘图保存到文件中(这里)测试.eps'并使用用户给出的一些标签、标题等作为参数(*args和**kwargs)。在
背景故事是,我必须为科学数据创建绘图,我希望Python类简单且适合我的情况。在import matplotlib.pyplot as plt
# class of figures for channel flow
# with one subfigure
class Homfig(plt.Figure):
# *args: list of plot features for ax1.plot
# (xdata,ydata,str linetype,str label)
# **kwargs: list of axes features for ax1.set_$(STH)
# possible keys:
# title,xlabel,ylabel,xlim,ylim,xscale,yscale
def __init__(self,*args,**kwargs):
self.arg_lst = []
for key,value in kwargs.iteritems():
setattr(self,key,value)
self.arg_lst.append(key)
i=0
for value in args:
setattr(self,'plot'+str(i),value)
i=i+1
print 'list of attributes set: ', self.__dict__.keys()
def hdraw(self):
fig2=plt.figure()
ax1 = fig2.add_subplot(111)
for key in self.arg_lst:
setattr(ax1,'set_'+key,getattr(self,key))
print getattr(ax1,'set_'+key)
ax1.plot([0, 1, 2, 3, 4], [0, 1, 2, 3, 4], label="Test", color='g')
leg = ax1.legend(loc=4)
plt.savefig('test.eps')
plt.clf()
ff = Homfig(title='very important title',xlabel="xxx",ylabel="yyy")
ff.hdraw()
方法“hdraw”应该绘制我的数据并将其保存到文件中。
代码没有给出错误信息,但没有看到打印标题或轴标签的更改。属性被赋予ax1并绘制出绘图。在
你能帮我理解这个问题并找到解决办法吗?在
我在控制台中运行脚本:
python霍姆菲格斯.py在
输出是:
属性集列表:['title'、'ylabel'、'xlabel'、'arg\ulst']
年
xxx
非常重要的标题