Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python为熊猫数据帧的每一行创建雷达图_Python_Pandas_Matplotlib_Charts_Visualization - Fatal编程技术网

用python为熊猫数据帧的每一行创建雷达图

用python为熊猫数据帧的每一行创建雷达图,python,pandas,matplotlib,charts,visualization,Python,Pandas,Matplotlib,Charts,Visualization,我使用熊猫是为了给一些玩家分配分数 我使用相同的KPI计算了每个玩家的一些属性,现在我为每个玩家计算了一行结果 dataframe如下所示(唯一的区别是它有更多的列): |名称|速度| ATK| |G1 | 0.32 | 0.89| |G4 | 0.31 | 0.76| 我想画一张雷达图会很好() 对于每一行,请使用matplotlib(如果可能) 你会怎么做? 是否有更好的matplotlib替代方案? 谢谢。要获得此蜘蛛外观,您至少需要三列。因此,我在您的数据帧中添加了一个随机列: im

我使用熊猫是为了给一些玩家分配分数

我使用相同的KPI计算了每个玩家的一些属性,现在我为每个玩家计算了一行结果

dataframe如下所示(唯一的区别是它有更多的列):


|名称|速度| ATK| |G1 | 0.32 | 0.89| |G4 | 0.31 | 0.76|
我想画一张雷达图会很好() 对于每一行,请使用matplotlib(如果可能)

你会怎么做?

是否有更好的matplotlib替代方案?


谢谢。

要获得此蜘蛛外观,您至少需要三列。因此,我在您的数据帧中添加了一个随机列:

import pandas as pd
df = pd.DataFrame({"Name": ["G1", "G4"],
                    "Speed": [0.32, 0.31],
                    "ATK": [0.89, 0.76],
                    "Random": [0.4, 0.8]})
print(df)
#  Name  Speed   ATK  Random
#0   G1   0.32  0.89     0.4
#1   G4   0.31  0.76     0.8
现在,让我们看看如何绘制这个简单的数据帧。以下代码改编自博客文章:

# import necessary modules
import numpy as np
import matplotlib.pyplot as plt
from math import pi


# obtain df information
categories = list(df)[1:]
values = df.mean().values.flatten().tolist()
values += values[:1] # repeat the first value to close the circular graph
angles = [n / float(len(categories)) * 2 * pi for n in range(len(categories))]
angles += angles[:1]

# define plot
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(8, 8),
                        subplot_kw=dict(polar=True))
plt.xticks(angles[:-1], categories, color='grey', size=12)
plt.yticks(np.arange(0.5, 2, 0.5), ['0.5', '1.0', '1.5'],
           color='grey', size=12)
plt.ylim(0, 2)
ax.set_rlabel_position(30)

# draw radar-chart:
for i in range(len(df)):
    val_c1 = df.loc[i].drop('Name').values.flatten().tolist()
    val_c1 += val_c1[:1]
    ax.plot(angles, val_c1, linewidth=1, linestyle='solid',
            label=df.loc[i]["Name"])
    ax.fill(angles, val_c1, alpha=0.4)

# add legent and show plot
plt.legend(loc='upper right', bbox_to_anchor=(0.1, 0.1))
plt.show()
其结果是这样的图形:

欢迎使用堆栈溢出!请看这篇关于一个问题的帖子。具体地说,这个网站是为了获得关于特定编程问题的帮助,而不是为了提供一般性建议或帮助编写整个工作流。你试过了吗?如果没有,那就去试试吧。如果您遇到问题,请随时将其作为问题发布@你说得对吗。我想问一个一般性的问题,以便在我的案例中“专门化”,因为我所问的是我实际需要做什么的象征。谢谢你的建议和见解