首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何沿时间线创建事件的可视化?

如何沿时间线创建事件的可视化?
EN

Stack Overflow用户
提问于 2020-01-28 15:45:15
回答 1查看 3.9K关注 0票数 5

我正在使用Python构建可视化。在那里,我想要可视化的油站和我的汽车的燃料成本。此外,洗车和它们的成本应该像维修一样可视化。燃料费和洗衣费应该有一个更高的门槛,这取决于成本。我创建了下面的可视化来描述这些概念。

如何使用matplotlib创建这样的可视化?

这是正在构建的可视化:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-28 20:40:20

是的,这种可视化在matplotlib中是完全可能的。为了存储数据,numpy数组通常非常方便。

下面是一些帮助您入门的代码:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

refuel_km = np.array([0, 505.4, 1070, 1690])
refuel_cost = np.array([40.1, 50, 63, 55])

carwash_km = np.array([302.0, 605.4, 901, 1331, 1788.2])
carwash_cost = np.array([35.0, 40.0, 35.0, 35.0, 35.0])

repair_km = np.array([788.0, 1605.4])
repair_cost = np.array([135.0, 74.5])

fig, ax = plt.subplots(figsize=(12,3))

plt.scatter(refuel_km, np.full_like(refuel_km, 0), marker='o', s=100, color='lime', edgecolors='black', zorder=3, label='refuel')
plt.bar(refuel_km, refuel_cost, bottom=15, color='lime', ec='black', width=20, label='refuel cost')

plt.scatter(carwash_km, np.full_like(carwash_km, 0), marker='d', s=100, color='tomato', edgecolors='black', zorder=3, label='car wash')
plt.bar(carwash_km, -carwash_cost, bottom=-15, color='tomato', ec='black', width=20, label='car wash cost')

plt.scatter(repair_km, np.full_like(repair_km, 0), marker='^', s=100, color='lightblue', edgecolors='black', zorder=3, label='car repair')
#plt.bar(repair_km, -repair_cost, bottom=-15, color='lightblue', ec='black', width=20)

ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_color('none')
ax.tick_params(axis='x', length=20)
ax.set_yticks([])  # turn off the yticks

_, xmax = ax.get_xlim()
ymin, ymax = ax.get_ylim()
ax.set_xlim(-15, xmax)
ax.set_ylim(ymin, ymax+25) # make room for the legend
ax.text(xmax, -5, "km", ha='right', va='top', size=14)
plt.legend(ncol=5, loc='upper left')

plt.tight_layout()
plt.show()

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59944182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档