【发布时间】:2017-12-05 22:42:30
【问题描述】:
我想在 Python (v2.7.12) 中创建一个单独的类,它将绘图保存到文件中(此处为“test.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 homfigs.py
输出是: 属性集列表:['title', 'ylabel', 'xlabel', 'arg_lst'] 年年 xxx 很重要的标题
【问题讨论】:
标签: python matplotlib plot subplot