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