绘制两组数据时未显示所有散点
All scatter points aren't displayed when plotting two sets of data
我正在尝试将两个数据集分散在同一个图表上。当我尝试这样做时,一些数据被切断了。这是我的代码:
Data = {
"Object A": [
[8.5, 8.2, 8.9, 10.9, 7.8, 8.3],
[42.2, 43.7, 47.3, 44.3, 44.9, 48.2]
],
"Object B": [
[7.0, 8.8, 10.5, 9.6, 8.5, 8.2],
[44.1, 43.1, 41.9, 43.5, 42.2, 43.7]
],
}
for y in Data.values():
plt.scatter(y[0], y[1])
plt.legend(['Object A', 'Object B'])
plt.show()
结果如下:
如您所见,图表上只显示了对象 A 的前四个值。即使我改变它的长度,这仍然存在。当我将对象 B 设置为数据列表中的第一项以查看这是否会改变任何内容时,图表当时拒绝显示对象 B 的最后 2 项。
如何让图表显示所有值?谢谢
编辑:如果我添加更多数据集,图表会显示所有这些点,并且仍然只截掉第一个点的最后两个点
- 正在绘制所有数据点,但正如您在下图中所见,有两个重叠数据点
(8.5, 42.2)
和 (8.2, 43.7)
。
- 设置
alpha=0.5
显示重叠点
- 在
python 3.8.12
、matplotlib 3.4.3
中测试
Data = {'Object A': [[8.5, 8.2, 8.9, 10.9, 7.8, 8.3], [42.2, 43.7, 47.3, 44.3, 44.9, 48.2]],
'Object B': [[7.0, 8.8, 10.5, 9.6, 8.5, 8.2], [44.1, 43.1, 41.9, 43.5, 42.2, 43.7]]}
fig, axes = plt.subplots(2, 2, figsize=(10, 10), sharex=True, sharey=True)
axes = axes.flat
for k, v in Data.items():
axes[0].scatter(v[0], v[1], label=k, alpha=0.5)
axes[2].scatter(Data['Object A'][0], Data['Object A'][1], label='Object A')
axes[3].scatter(Data['Object B'][0], Data['Object B'][1], color='tab:orange', label='Object B')
axes[0].legend()
axes[2].legend()
axes[3].legend()
axes[0].grid()
axes[2].grid()
axes[3].grid()
fig.delaxes(axes[1])
plt.show()
我正在尝试将两个数据集分散在同一个图表上。当我尝试这样做时,一些数据被切断了。这是我的代码:
Data = {
"Object A": [
[8.5, 8.2, 8.9, 10.9, 7.8, 8.3],
[42.2, 43.7, 47.3, 44.3, 44.9, 48.2]
],
"Object B": [
[7.0, 8.8, 10.5, 9.6, 8.5, 8.2],
[44.1, 43.1, 41.9, 43.5, 42.2, 43.7]
],
}
for y in Data.values():
plt.scatter(y[0], y[1])
plt.legend(['Object A', 'Object B'])
plt.show()
结果如下:
如您所见,图表上只显示了对象 A 的前四个值。即使我改变它的长度,这仍然存在。当我将对象 B 设置为数据列表中的第一项以查看这是否会改变任何内容时,图表当时拒绝显示对象 B 的最后 2 项。
如何让图表显示所有值?谢谢
编辑:如果我添加更多数据集,图表会显示所有这些点,并且仍然只截掉第一个点的最后两个点
- 正在绘制所有数据点,但正如您在下图中所见,有两个重叠数据点
(8.5, 42.2)
和(8.2, 43.7)
。 - 设置
alpha=0.5
显示重叠点 - 在
python 3.8.12
、matplotlib 3.4.3
中测试
Data = {'Object A': [[8.5, 8.2, 8.9, 10.9, 7.8, 8.3], [42.2, 43.7, 47.3, 44.3, 44.9, 48.2]],
'Object B': [[7.0, 8.8, 10.5, 9.6, 8.5, 8.2], [44.1, 43.1, 41.9, 43.5, 42.2, 43.7]]}
fig, axes = plt.subplots(2, 2, figsize=(10, 10), sharex=True, sharey=True)
axes = axes.flat
for k, v in Data.items():
axes[0].scatter(v[0], v[1], label=k, alpha=0.5)
axes[2].scatter(Data['Object A'][0], Data['Object A'][1], label='Object A')
axes[3].scatter(Data['Object B'][0], Data['Object B'][1], color='tab:orange', label='Object B')
axes[0].legend()
axes[2].legend()
axes[3].legend()
axes[0].grid()
axes[2].grid()
axes[3].grid()
fig.delaxes(axes[1])
plt.show()