Создайте список из titanic csv и диаграммы с помощью matplot.pyplot и savefig

#python #csv #matplotlib

#python #csv #matplotlib

Вопрос:

Я играю с Kaggle Titanic train.csv, чтобы удобнее работать со списками, программой чтения csv и диаграммами matplot. Неважно, что список, который я создаю, на самом деле не нужен для отображения данных на диаграмме (или что диаграмма представляет собой строку …). Я просто хочу создать простую диаграмму и сохранить ее, но когда я ищу ее в текущем каталоге, ее там нет. Есть ли что-то не так с кодом (помимо того, что он не очень «питонический»)?

Я запускаю Windows и выполняю в Powershell.

Элемент 1 в csv определяет выживших, элемент 4 указывает мужчину / женщину, элемент 5 — возраст. Я хочу, чтобы на диаграмме отображалось количество выживших мужчин каждого перечисленного возраста, прежде чем я перейду к чему-то значимому.

 import csv
import matplotlib.pyplot as plt

f = open("PATH/train.csv")
csv_f = csv.reader(f)

class survivordata:
    def male_test(self, data):

        for row in data:
            tlist = list(row)
            # now I have a list of tuples.
            if tlist[4] == "male" and tlist[1] == 1:
                males = []
                males.append(row)
                c = counter(males)
                plt.plot(males[5], c[5], color = 'blue', marker = 'x',
                linestyle = 'solid'
                )
                plt.title("Male Survivors")
                plt.ylabel("Number Survivors")

                plt.savefig("graph.png")
  

Ценю обратную связь.

Комментарии:

1. добавьте много print(some_usefull_message) в код, чтобы увидеть, какая часть выполняется.

Ответ №1:

csv модуль не преобразует текст в int , поэтому вам нужно сравнивать tlist[1] с текстом "1" .

Если это не сработает, добавьте много print(some_usefull_message) в код, чтобы увидеть, какая часть выполняется. И выведите переменную, чтобы увидеть значения. В основном это помогает решить проблему.

Комментарии:

1. Спасибо — надо было попробовать это с самого начала. Теперь я могу перейти к проблемам с модулем, которые, похоже, у меня возникли.