Что случилось, я последовал за этим demo, я изменил его в соответствии с моими потребностями, если он работал, изменил его, чтобы использовать функцию для рисования двух графиков, но теперь он вообще не работает с помощью 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'])
Может кто-нибудь объяснить, почему это происходит? что я делаю неправильно?
Попробуйте удалить
import matplotlib
matplotlib.use('Agg')
Команда
python -c 'import matplotlib; matplotlib.use("")'
покажет вам допустимые строковые аргументы, которые можно отправить в matplotlib.use
.
На моей машине "Agg" указан как действительный, хотя я не получаю никакого вывода, когда он установлен. Если вам интересно, вы можете просто попробовать различные варианты, пока не найдете тот, который работает.
Когда вы найдете то, что предпочитаете, вам также может быть удобнее установить что-то вроде
backend : GtkAgg
в вашем ~/.matplotlib/matplotlibrc вместо matplotlib.use(...)
.