python - Pyplot - 当一个轴的列表长度不一致时,如何在同一个图表上绘制多条线?
问题描述
我试图在同一个图表上绘制多条线,其中一个轴列表由日期组成,另一个是与每个日期对应的数字列表。但是,当我绘制第二行时,日期列表的内容和长度与绘制的第一行不同。因此,为了尝试解决这个问题,我将所有使用的日期放入 1 个数组中,并将其用于 y 轴。这给我留下了一个问题,即 x 轴的长度永远不会与 y 轴的长度相同,从而导致错误。为了解决这个问题,我尝试了以下方法:
while len(y) != len(dates):
y.insert(0, 0)
plt.plot(dates, y) # plots the line for x (dates) and y
这修复了错误,但是图表现在应该在绘制 1 时绘制 0。
该图应绘制在 0.1 而不是 0.0
所以我要问的是如何在与日期相关的正确位置用零填充 y 轴列表,而不是将所有零放在列表的开头?
解决方案
在单独的调用中绘制两组数据。这是一个例子:
from datetime import datetime
import matplotlib.pyplot as plt
derby_dates = [datetime(2020, 3, 1),
datetime(2020, 3, 2),
datetime(2020, 3, 3),
datetime(2020, 3, 6)]
derby_cases = [1, 10, 7, 12]
nottingham_dates = [datetime(2020, 3, 1), datetime(2020, 3, 2)]
nottingham_cases = [2, 5]
plt.plot(derby_dates, derby_cases)
plt.plot(nottingham_dates, nottingham_cases)
plt.xticks(rotation=30)
plt.tight_layout()
plt.show()
像这样的情节:
推荐阅读
- python - pygame sprites 中的透明度
- javascript - 看起来相同的字符串不相等
- flutter - 执行诸如点击行之类的操作后,如何更新/刷新 ListView 的视图
- reactjs - 如何在 react-native 中获得锐利的视图?
- php - 使用 API 将附件上传到 HubSpot 中的交易中
- asp.net-core - 如何在 WebApplicationFactory 创建的 Host 上配置 url?
- migration - 单体到微服务的数据迁移
- node.js - 赛普拉斯:阅读下载的 excel
- java - 使用递归添加二叉树节点并在同一行上打印父/子节点时出错?
- html - CSS 列未正确显示