Python matplotlib用绘制雷达图实战案例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python matplotlib用绘制雷达图实战案例相关的知识,希望对你有一定的参考价值。

参考技术A import pandasas pd

import matplotlib.pyplotas plt

import numpyas np

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

plt.rcParams['axes.unicode_minus'] =False

data = pd.read_csv(r'D:\bigData\radarMap.csv')

data = data.dropna(axis=1)

data = data.set_index('性能评价指标')

data = data.T

data.index.name ='品牌'

def plot_radar(data, feature):

columns = ['动力性', '燃油经济性', '制动性', '操控稳定性', '行驶平顺性', '通过性', '安全性', '环保性', '方便性', '舒适性', '经济性', '容量性']

colors = ['r', 'g', 'y']

# 设置雷达图的角度,用于平分切开一个平面

    # linspace(1,10,x) 创建1-10的等差数组,个数为 x,默认50个;endpoint参数指定是否包含终值,默认值为True,即包含终值。

    angles = np.linspace(0.1 * np.pi, 2.1 * np.pi, len(columns), endpoint=False)

# 使雷达图封闭起来

    angles = np.concatenate((angles, [angles[0]]))

# figsize:指定figure的宽和高,单位为英寸;

    figure = plt.figure(figsize=(6, 6))

# 设置为极坐标格式;subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)创建单个子图,下面两句效果相同

    ax = figure.add_subplot(111, polar=True)

for i, cin enumerate(feature):

stats = data.loc[c]

stats = np.concatenate((stats, [stats[0]]))

ax.plot(angles, stats, '-', linewidth=2, c=colors[i], label=str(c))

ax.fill(angles, stats, color=colors[i], alpha=0.75)

# bbox_to_anchor这个参数,可以把图例放在图外面

    # bbox_to_anchor:表示legend的位置,前一个表示左右,后一个表示上下。

    # 当使用这个参数时。loc将不再起正常的作用,ncol=3表示图例三列显示。

    ax.legend(loc=4, bbox_to_anchor=(1.15, -0.07))

# 设置极轴范围

    ax.set_ylim(0, 10)

# ax.set_yticklabels([2, 4, 6, 8, 10])

    # 添加每个特质的标签

    columns = np.concatenate((columns, [columns[0]]))

ax.set_thetagrids(angles *180 / np.pi, columns, fontsize=12)

# 添加标题

    plt.title('汽车性能指标雷达图')

plt.show()

return figure

figure = plot_radar(data, ['A品牌', 'B品牌', 'C品牌'])

以上是关于Python matplotlib用绘制雷达图实战案例的主要内容,如果未能解决你的问题,请参考以下文章

Python3.8使用 matplotlib 绘制雷达图

Python简单雷达图绘制

Python使用matplotlib绘制柱状图(bar plot)实战:水平条形图垂直条形图分组条形图堆叠条形图

python使用matplotlib绘制水平条形图并在条形图上添加实际数值标签实战

Python把matplotlib绘制的水平条形图(horizontal bar)转化为竖直的柱状图(vertical bar)实战

Python绘制雷达图(俗称六芒星)