python - 在 matplotlib 中绘制不同列大小数组的一维数组
问题描述
鉴于此,我有 x 和 y 数组,我可以轻松绘制点,如下所示:
a = np.arange(10).reshape(5, 2)
plt.scatter(a.T[0], a.T[1])
plt.xlabel("Interval")
plt.ylabel("Value")
plt.show()
但目前,我有一个大小不一的列表列表,如下所示:
a = [
[0, 1, 3],
[4, 2],
[1, 4, 7, 2],
[2],
[3, 4, 5, 6]
]
plt.scatter(a, list(range(len(a))))
plt.xlabel("Interval")
plt.ylabel("Value")
plt.show()
但是,这会产生一个错误:使用序列设置数组元素,当尺寸不固定且大小不相等时肯定会这样做((dimen)x!=(dimen)y),但我正在寻找类似的东西:
我怎样才能获得那种情节?
解决方案
您可以创建要手动绘制的数据:
import numpy as np
import matplotlib.pyplot as plt
a = np.array([
[0, 1, 3],
[4, 2],
[1, 4, 7, 2],
[2],
[3, 4, 5, 6]
])
data = np.array([[x, y] for x, ys in enumerate(a) for y in ys])
plt.scatter(data[:, 0], data[:, 1], c='red')
plt.xlabel("Interval")
plt.ylabel("Value")
plt.show()
推荐阅读
- git - Git 拉取请求:从分支合并到另一个空分支 - 选定分支之间没有更改
- javascript - 如何将表上的新行添加到本地存储?
- html - 删除对象标签周围的白色边框
- vba - 使用宏 VBA 更新单元格值
- css - 无法在 DataTables 中使用 css 修复行边框
- apache-beam - 为什么在本地机器上运行 apache Beam 时出现属性错误?
- git - 如何忽略 Git LFS 无法找到源
- ios - AudioKit 崩溃:所需条件为假:!destNodeMixerConns.empty() && !isDestNodeConnectedToIONode
- xamarin - 我可以使用 BindableProperty 在我的 Xamarin ContentView 自定义控件中禁用按钮吗?
- android - 用于轮询数据的 Rxjava2 单元测试失败