matplotlib 奇怪情况,无法绘制我的图表
发生的事情是,我跟着这个示例,把它修改成我需要的样子,原本是可以正常工作的。后来我把它改成用一个函数来画两个图,但现在无论是用plt.show()
还是plt.savefig()
都完全不工作了。
这是我的代码
import csv
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
# I converted excel to a csv file
data = [x for x in csv.reader(open('ASS1_Q1.csv'))]
question1 = {}
question1['males'] = []
question1['females'] = []
for x in data:
if x[0].lower() == "male":
question1["males"].append(float(x[1]))
elif x[0].lower() == "female":
question1['females'].append(float(x[1]))
else:
print "Not a valid dataline", x
def plot_graph(data, filename):
fig = plt.figure()
ax = fig.add_subplot(111)
n, bins, patches = ax.hist(np.array(data), bins=13, align='mid', facecolor='#888888')
ax.set_xlabel('Speed in kph')
ax.set_ylabel('Amount of Females')
ax.set_xlim(min(data, max(data)))
# plt.savefig(filename)
plt.show()
plot_graph(question1['males'], "ASS1Q1-males.eps")
#plot_graph(question1['females'], "ASSQ2-females.eps")
print summary(question1['males'])
print summary(question1['females'])
有人能解释一下为什么会这样吗?我哪里做错了?
1 个回答
1
试着去掉
import matplotlib
matplotlib.use('Agg')
这个命令
python -c 'import matplotlib; matplotlib.use("")'
会告诉你可以发送给 matplotlib.use
的有效字符串参数。在我的电脑上,'Agg' 被列为有效选项,不过当我设置成这个时没有任何输出。如果你感兴趣,可以尝试不同的选项,直到找到一个有效的。
当你找到你喜欢的选项后,你可能会觉得在你的 ~/.matplotlib/matplotlibrc 文件中设置类似于
backend : GtkAgg
会更方便,而不是每次都用 matplotlib.use(...)
。