python - python matploblib图未显示
问题描述
我是 python 新手,我不确定为什么我的条形图没有显示任何内容。任何帮助,将不胜感激!使用的数据集:https ://data.gov.sg/dataset/public-transport-utilisation-average-trip-distance
import numpy as np
import matplotlib.pyplot as plt
ptrip = np.genfromtxt("data/public-transport-utilisation-average-trip-distance.csv",
dtype=(int,"U100",float),
delimiter=",",
names=True)
years = np.unique(ptrip["year"])
modes = np.unique(ptrip["mode"])
distances = ptrip["ave_distance_per_trip"]
avgs = []
labels = []
for c in distances:
labels.append(c)
mu = np.mean(ptrip[ptrip["mode"]==c]["ave_distance_per_trip"])
avgs.append(mu)
plt.figure(figsize=(7, 6))
bar0 = plt.bar(labels,avgs,color="blue")
plt.xlabel("public transport")
plt.xticks(rotation='vertical')
plt.ylabel("Average distance per trip")
plt.show()
解决方案
mu
由于您将“模式”中的字符串与浮动距离 c 进行比较,因此看起来错误的计算ptrip["mode"]==c
总是会返回 false。因此,您的 avgs 数组只是一堆 nan 值。这反过来又被 matplotlib 解释为什么都没有,因此你什么也不做。
编辑:虽然你可以从这个数据集中绘制很多东西,但我能找到的最简单的错误是你正在循环distance
而不是模式。因此,一个地块的工作代码(所有年份每种交通方式的平均每次旅行距离)将是:
import numpy as np
import matplotlib.pyplot as plt
ptrip = np.genfromtxt("/home/christopher/test/public-transport-utilisation-average-trip-distance.csv",
dtype=(int,"U100",float),
delimiter=",",
names=True)
years = np.unique(ptrip["year"])
modes = np.unique(ptrip["mode"])
distances = ptrip["ave_distance_per_trip"]
avgs = []
labels = []
for c in modes: # Note the change from distances to modes here
labels.append(c)
mu = np.mean(ptrip[ptrip["mode"]==c]["ave_distance_per_trip"])
avgs.append(mu)
plt.figure(figsize=(7, 6))
bar0 = plt.bar(labels,avgs,color="blue")
plt.xlabel("public transport")
plt.xticks(rotation='vertical')
plt.ylabel("Average distance per trip")
plt.show()
推荐阅读
- tensorflow - 在视频流中检测到对象后,我想裁剪并保存这些对象
- lambda - 如何使用 lambda Dsl for Pact 为“arrayMinLike”生成相同的匹配规则?
- botframework - 如何在 Microsoft Bot Framwork 中使用 C# 将 Chatbot 集成到 Skype for business On Premises
- javascript - 如何从 Javascript 函数执行 Angular 函数?
- python - 在peewee(sqlite3)中按binned列分区
- java - 无法在 Android WebView 中获取 cookie 数据
- html - 在angularjs中配置文本标签
- networking - 从快照创建的 Google Cloud 虚拟机实例不允许 ssh
- html - 将 html 转换为画布然后转换为 Pdf 时分页符不起作用
- android - 如何在 Volley 中使用 Post 方法?