странность matplotlib, это не рисует мой график

1

Что случилось, я последовал за этим 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'])

Может кто-нибудь объяснить, почему это происходит? что я делаю неправильно?

Теги:
matplotlib
graph

1 ответ

1
Лучший ответ

Попробуйте удалить

import matplotlib
matplotlib.use('Agg')

Команда

python -c 'import matplotlib; matplotlib.use("")'

покажет вам допустимые строковые аргументы, которые можно отправить в matplotlib.use. На моей машине "Agg" указан как действительный, хотя я не получаю никакого вывода, когда он установлен. Если вам интересно, вы можете просто попробовать различные варианты, пока не найдете тот, который работает.

Когда вы найдете то, что предпочитаете, вам также может быть удобнее установить что-то вроде

backend      : GtkAgg

в вашем ~/.matplotlib/matplotlibrc вместо matplotlib.use(...).

  • 0
    спасибо я сейчас попробую
  • 0
    о, я нашел проблемную строку 36, у меня все квадратные скобки неправильные: /, не знаю, как это произошло, мне следовало бы лучше объяснить себя, так как вместо этого он рисовал пустое пространство для графика
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню