这个是什么图怎么用Python画,横坐标换成时间序列

img


这个图咋画呀,不是简单的柱状堆叠图,还需要根据数据改变颜色,横坐标还得换成时间,用气泡矩阵图也无法做到

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
这个图看起来像是一张热力图,可以使用 Python 中的 Matplotlib 库来实现。下面是一份代码示例,您可以根据自己的数据和需求进行修改:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import matplotlib.dates as mdates

# 模拟数据
start_date = '2022-01-01'
end_date = '2022-12-31'
dates = np.arange(np.datetime64(start_date), np.datetime64(end_date))
data = np.random.randint(0, 10, size=(len(dates), 24))

# 定义颜色映射
cmap = colors.ListedColormap(['white', 'lightblue', 'blue', 'darkblue', 'purple'])

# 绘制热力图
fig, ax = plt.subplots(figsize=(10, 5))
im = ax.imshow(data, cmap=cmap)

# 设置横坐标为时间序列
ax.set_xticks(np.arange(len(dates)))
ax.set_xticklabels([d.strftime('%Y-%m-%d') for d in dates])
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=2))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))

# 设置纵坐标为小时
ax.set_yticks(np.arange(24))
ax.set_yticklabels(['{:02d}:00'.format(h) for h in range(24)])

# 添加颜色条
cbar = ax.figure.colorbar(im, ax=ax)
cbar.ax.set_ylabel('Value', rotation=-90, va="bottom")

# 添加标题和标签
ax.set_title("Heatmap")
ax.set_xlabel("Date")
ax.set_ylabel("Hour")

# 显示图像
plt.show()

在上述代码中,我们首先使用 NumPy 库生成了随机数据,并定义了一个颜色映射。然后,我们创建了一个 Subplot 对象,并使用 imshow 函数绘制了热力图。接着,我们设置了横坐标为时间序列,并使用 set_major_locatorset_major_formatter 函数设置了横坐标的主要定位器和格式化器。我们还设置了纵坐标为小时,并添加了颜色条、标题和标签。最后,我们使用 show 函数显示图像。

您可以根据自己的数据和需求进行修改,并使用 savefig 函数将图像保存为图像文件。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^