我正在嘗試將兩個資料集分散在同一個圖表上。當我嘗試這樣做時,一些資料被切斷了。這是我的代碼:
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 項。

如何使圖表顯示所有值?謝謝
編輯:如果我添加更多資料集,圖表會顯示所有這些點,并且仍然只切斷第一個的最后兩個
uj5u.com熱心網友回復:
- 正在繪制所有資料點,但正如您在下圖中所見,有兩個重疊的資料點
(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()

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/351749.html
標籤:Python matplotlib 散点图
上一篇:帶有ms-access索引的delphi在Table.indexName中不可用
下一篇:如何聚合資料并繪制所有組
