Как убедиться, что линейный график matplotlib правильный? - PullRequest
0 голосов
/ 22 декабря 2018

Мне нужно построить точный линейный график через matplotlib, но я получаю только ay = x graph.И значения тиков по оси Y перемешаны.

this is a portion of the data set in csv

import numpy as np
import matplotlib.pyplot as plt

title = "Number of Flats Constructed"
data = np.genfromtxt('C:\data/flats-constructed-by-housing-and-development-board-annual.csv', 
                        skip_header=1, 
                        dtype=[('year','i8'),('flats_constructed','U50')], delimiter=",",
                        missing_values=['na','-'],filling_values=[0])

x = data['year']
y = data['flats_constructed']

plt.title('No. of Flats Constructed over the Years')
#plt.plot(data['year'], data['flats_constructed'])
plt.plot(x, y)
plt.show()

Я получил график y = x вместо зубчатого графика, отражающего значения.

Фактический результат

actual output

Образец ожидаемого результата sample of expected output

1 Ответ

0 голосов
/ 22 декабря 2018

Ваша ошибка в ('flats_constructed','U50').

Дайте это как ('flats_constructed','i8').Вы читаете это как строку, когда даете U50.

from io import StringIO
import numpy as np

s = StringIO(u"1977,30498\n1978,264946\n1979,54666\n1980,54666")
data = np.genfromtxt(s, dtype=[('myint','i8'),('myfloat','i8')], delimiter=",",skip_header=0)
data

plt.plot(data['myint'],data['myfloat'])
plt.show()

enter image description here

...