python - 在 Python 中绘制键值对
问题描述
我正在尝试在字典中绘制键值对。问题是我的值是列表,每个包含数百个数据点。我需要将这些与密钥(代表年份)进行对比。我有一张我正在研究的论文的示例图片(附在此处) 。我需要能够像那样的情节。一个值中的所有数据点都针对它的键(年份)。
如果我的字典是 d,我尝试了以下方法:
f=list(d.items())
plt.plot(f[0][0],f[0][1])
但我收到以下错误:
ValueError:x 和 y 必须具有相同的第一维,但具有形状 (1,) 和 (408,)
请让我知道是否有任何方法可以绘制它,以便我可以获得类似于所附的情节。提前致谢。
PS。示例图是使用 IDL 完成的,以防有人想知道,因为它看起来不像 python 图。
解决方案
要将多个 y 值添加到 x 轴上的同一点,您需要将 x 值带到与 y 值相同的维度:
y = [[5,1,2,3,9,10],[1,1,5,7.2,3.4,9,6.6,2,4]]
x = ['2000','2001']
for x_val, y_val in zip(x, y): # Getting related pairs from x and y
plt.scatter([x_val] * len(y_val), y_val) # Bumping the dimension of x_val to the dimension of y_val before plotting
plt.show()
输出:
因此,对于您的问题,您可以尝试这样做:
f=list(d.items())
x = f[0][0]
y = f[0][1]
for x_val, y_val in zip(x, y):
plt.scatter([x_val]
推荐阅读
- c - 在 MacOS 中获取 pre-shebang 可执行路径(相当于 getauxval(AT_EXECFN) )
- c - CS50 Caesar 上的分段错误和调试
- pdfjs - 如何在 PDFJs 中添加(在 pdf 上绘制签名)功能
- swift - 为什么这个属性在初始化后保持为零?
- operating-system - 是什么阻止了用户应用程序能够“劫持”到内核模式?
- stm32 - STM32F7 的 SPI 从模式和循环 DMA
- mysql - 如何从数组 JSON 更新 MySQL 中的多行
- spring-boot - springboot中记录器的无效声明
- python - PyTorch NLLloss 中的“预期 2 维或更多维(得到 1)”即使张量的维数正确
- sql - WITH (UPDLOCK, HOLDLOCK) 和非唯一索引 - 它会锁定整个表吗?