gpt4 book ai didi

python - 如何为时间线上的事件创建可视化?

转载 作者:行者123 更新时间:2023-12-03 20:26:40 24 4
gpt4 key购买 nike

我正在用 Python 构建一个可视化。
在那里,我想可视化燃料停止和我的汽车的燃料成本。此外,洗车及其成本以及维修都应该可视化。根据成本,燃料成本和洗衣成本应该有更高的标准。我创建了下面的可视化来描述这些概念。

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

这是正在构建的可视化:

Data visualization of a vehicle

最佳答案

是的,使用 matplotlib 完全可以实现这种可视化。为了存储数据,numpy 数组通常非常方便。

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

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()

example plot

关于python - 如何为时间线上的事件创建可视化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59944182/

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