【问题标题】:Data Visualization in PythonPython中的数据可视化
【发布时间】:2020-01-21 08:21:49
【问题描述】:

假设我有这样的交通拥堵数据:

如何用 x = 唯一的时间,y = 速度来可视化我的数据。而且我有多个独特的街道 A、B、C、D 的情节?

如果您对使用其他参数(如道路类型、警报等)可视化或提供我的数据有一些建议,我将不胜感激。

谢谢!

【问题讨论】:

  • 我会考虑首先对街道类型进行分类,然后简单地绘制速度与时间图。不要认为这个问题应该在这里,但数据的可视化完全取决于您想要找出或显示的内容。
  • 您好,感谢您的回复。但是,我们可以在一张图表中制作多个独特街道的线图吗?我的意思是,街道 A、B、C、D 作为标签?

标签: python matplotlib seaborn visualization


【解决方案1】:

我可以向你保证,这不是很优雅,但我认为它可以完成工作。您将面临奇异时间值的问题。向数据添加起始值,因为奇异值 + 线图效果不太好。尝试使用 scatter 但这只是搞砸了标签。

data = {'street': ['street A','street B','street C','street D','street A', 'street B', 'street C', 'street A', 'street C', 'street D'], 'time': [0,0,0,0,1, 1, 1, 2, 2, 2], 'speed': [0,0,0,0,3.22, 1.2, 2.3, 2.3, 2.1, 1.9], 'jams_level': [0,0,0,0,3, 1, 2, 2, 2, 1]}
df = pd.DataFrame(data,columns = ["street","time","speed","jams_level"])
street = list(df.street.unique()) #I am much more comfortable with lists

subdf = []
for i in street:
    subdf.append(df.loc[df["street"] == i].sort_values(by=["time"])) #Grouping dataframes by street

fig,ax = plt.subplots()

for i in subdf:
    i.plot(x="time",y="speed",ax=ax) #use pandas.plot method

ax.legend(street) #rename legend

这是一种非常简单粗暴的方法,可能还不够好。熊猫数据操作不是很好,但希望它有效。它的作用本质上是将您的原始数据框拆分为“街道”。然后在重命名图例以便更好地阅读之前,在同一个子图上绘制速度与时间的关系。着色也可以完成,但需要更多的逻辑。再说一次,我确信那里有一个更简单的解决方案。结果图:

【讨论】:

  • 这对您有用还是您需要更清洁的解决方案?
  • 抱歉我的回复晚了。你的解释我明白了,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
相关资源
最近更新 更多