dataframe主要目標是從以下樣本中繪制極坐標圖。
df = pd.DataFrame({"Group":[1,2],
"Var1":[100,20],
"Var2":[50,40],
"Var3":[10,14],
"Var4":[10,140],
"Var5":[100,14]})
到目前為止,我所擁有的是以下代碼,僅針對一個“組”或線圖來完成此問題。
# Create graph with values of most relevant variables
# Create a random data set
np.random.seed(1)
angles = np.linspace(0, 2 * np.pi, 5, endpoint=False)
values = np.random.random(5)
# The first value is repeated to close the chart.
angles=np.concatenate((angles, [angles[0]]))
values=np.concatenate((values, [values[0]]))
labels=['Var1', 'Var2', 'Var3', 'Var4', 'Var5']
# Representation of the spider graph
plt.polar(angles, values, 'o-', linewidth=2)
plt.fill(angles, values, alpha=0.25)
plt.thetagrids(angles * 180 / np.pi, labels)
plt.show()
不知道如何轉換df以便將第 1 組和第 2 組一起繪制在同一個圖中。
uj5u.com熱心網友回復:
您可以回圈遍歷資料框行并繪制每一行的極坐標圖:
import matplotlib.pyplot as plt
np.random.seed(1)
angles = np.linspace(0, 2 * np.pi, 5, endpoint=False)
# The first value is repeated to close the chart.
angles=np.concatenate((angles, [angles[0]]))
labels=['Var1', 'Var2', 'Var3', 'Var4', 'Var5', 'Var1']
# polar plot each row separately
for row in df.values.tolist():
values = row[1:] [row[1]]
plt.polar(angles, values, 'o-', linewidth=2)
plt.fill(angles, values, alpha=0.25)
# Representation of the spider graph
plt.thetagrids(angles * 180 / np.pi, labels)
plt.show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/424615.html
標籤:Python matplotlib 图形 数据可视化 可视化
上一篇:熊貓資料框繪制時間軸格式總秒數到經過的HH:MM:SS
下一篇:將字串轉換為浮點數時出現值錯誤
