我有一組保存在二維串列中的數字序列。串列中的每個元素都是不同長度的子串列,例如 1-10 范圍內的數字。像這樣:
Lst = [[1,3,4,4,4,5],[2,7,2,3],[6,5,4,2,4],[2,4,5,7,5,4,2],[4,9,4,1,4,5,4]…]
有沒有辦法通過使用matplotlib以散點圖或氣泡圖繪制這些資料并重復值?串列中的每個元素在X軸上占據一個位置,元素中的所有值都分布在對應的Y軸位置上,并且值重復的次數越多,繪制的尺寸越大或顏色越深觀點。
我已經知道如何使用 matplotlib plot scatter plotting,但我不知道如何在一個 Y 軸上一個一個地繪制一個 2D 串列項。
謝謝你。

uj5u.com熱心網友回復:
您可以在 for 回圈中繪制每個子串列:
import matplotlib.pyplot as plt
from collections import Counter
import numpy as np
Lst = [[1,3,4,4,4,5],[2,7,2,3],[6,5,4,2,4],[2,4,5,7,5,4,2],[4,9,4,1,4,5,4]]
plt.figure()
for i, j in enumerate(Lst):
occurences, sizes = list(zip(*list(Counter(j).items())))
plt.scatter(i*np.ones(len(occurences)) 1, occurences, s=np.array(sizes)*50)
輸出:

編輯:滿足點也變得更暗的請求。使用此處的答案:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/463363.html
標籤:Python matplotlib 分散
