gpt4 book ai didi

python - 无法从 plt.bar 生成条形图

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:54 25 4
gpt4 key购买 nike

我有一个作业,只允许 matplotlib 和基本 python。我无法生成所需的条形图。尽管 anaconda 已经确定了有问题的行,但我无法理解它。

数据来源在这里:https://data.gov.sg/dataset/bookings-for-new-flats-annual?view_id=2cdedc08-ddf6-4e0b-b279-82fdc7e678ea&resource_id=666ed30a-8344-4213-9d2e-076eeafeddd3

已复制示例资源并复制它。

import numpy as np
import matplotlib.pyplot as plt
fname = "C:\data/bookings-for-new-flats.csv"
data = np.genfromtxt('C:\data/bookings-for-new-flats.csv',
skip_header=1,
dtype=[('financial_year','U50'),('no_of_units','i8')], delimiter=",",
missing_values=['na','-'],filling_values=[0])

labels = list(set(data['financial_year']))
labels.sort()
bookings = np.arange(0,len(labels))
bookings_values = data[['financial_year','no_of_units']]

values = bookings_values['no_of_units']

units_values = {}

for i in labels:
valuesforFY = values[bookings_values['financial_year']==i]
print("No.of Units in FY: " + i + " is {}".format(valuesforFY))
#the line below is critical
units_values[i] = valuesforFY

barchart = plt.bar(list(units_values.keys()), list(units_values.values()), color='b')

plt.show()

期望有一个条形图,但只收到一个空的。

系统识别出此行有问题 --->

barchart = plt.bar(list(units_values.keys()), list(units_values.values()), color='b')

最佳答案

问题在于读取 y 数据(字典的值),这些数据是包含在数组中的单个值,因此您会得到一个数组列表。

以下是解决方案:迭代值并仅存储可以使用索引 0 作为 [0] 访问的数据。为了便于阅读,我在这里重写了您的代码,首先提取 xdata 中的 x 值,然后提取 ydata 中的 y 值。

xdata =  list(units_values.keys())
ydata = [i[0] for i in units_values.values()]
barchart = plt.bar(xdata, ydata, color='b')

enter image description here

关于python - 无法从 plt.bar 生成条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53923956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com