странность matplotlib, это не рисует мой график - PullRequest
1 голос
/ 16 августа 2010

Что случилось, я последовал за этим демо , я изменил его, чтобы он соответствовал моим потребностям, если он работал, изменил его на использование функции для рисования двух графиков, но теперь он не работает вообще с использованием 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 голос
/ 16 августа 2010

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

import matplotlib
matplotlib.use('Agg')

Команда

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

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

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

backend      : GtkAgg

в вашем ~ / .matplotlib / matplotlibrc вместо использования matplotlib.use(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...