python 中的数据框到 spyder 图

Dataframe to spyder graph in python

主要目标是根据以下 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 组。

您可以循环遍历数据框行和每行的极坐标图:

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()