如何确保 matplotlib 折线图正确?

How to make sure matplotlib line graph is correct?

我需要通过 matplotlib 绘制一个准确的折线图,但我只得到一个 y=x 图。并且 y 轴刻度值混乱了。

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 图表,而不是反映值的锯齿状图表。

实际产量

预期输出样本

你的错误在('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()