美文网首页
数据可视化50图(十) —— 3种宝可梦属性排行榜图

数据可视化50图(十) —— 3种宝可梦属性排行榜图

作者: iced_fd13 | 来源:发表于2019-04-11 21:30 被阅读0次

    前言

    A change of perspective is worth 80 IQ points Alan Kay

    著名计算机科学家、艾伦·凯说过,换一个角度看问题值80点智商。

    什么做排行只会用柱状图?本期教你3种不同的排行榜样式。另外最近的数据集从只有一代宝可梦,到了1-6代也就是从黄/红/绿、金银、绿宝书、珍珠钻石、黑白、xyz,也包括mega进化。

    例16

    # Prepare Data
    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
    plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
    Pokemon_file=r"..\data\pokemon_6.csv"
    df_raw = pd.read_csv(Pokemon_file)
    
    #df=df_raw[df_raw['Legendary']==True]
    df = df_raw.groupby(r'Type 1').apply(lambda x: x.mean())
    df.sort_values('Total', inplace=True)
    df.reset_index(inplace=True)
    
    # Draw plot
    import matplotlib.patches as patches
    
    fig, ax = plt.subplots(figsize=(16,10), facecolor='white', dpi= 80)
    ax.vlines(x=df.index, ymin=0, ymax=df.Total, color='firebrick', alpha=0.7, linewidth=20)
    
    # Annotate Text
    for i, Total in enumerate(df.Total):
        ax.text(i, Total+10, round(Total, 1), horizontalalignment='center')
    
    
    # Title, Label, Ticks and Ylim
    ax.set_title('宝可梦各系能力平均值', fontdict={'size':22})
    ax.set(ylabel='个体值平均数', ylim=(0, 730))
    plt.xticks(df.index, df['Type 1'], rotation=60, horizontalalignment='right', fontsize=12)
    
    # Add patches to color the X axis labels
    p1 = patches.Rectangle((.57, -0.005), width=.33, height=.13, alpha=.1, facecolor='green', transform=fig.transFigure)
    p2 = patches.Rectangle((.124, -0.005), width=.446, height=.13, alpha=.1, facecolor='red', transform=fig.transFigure)
    fig.add_artist(p1)
    fig.add_artist(p2)
    plt.show()
    

    图像

    ![102.png](https://img.haomeiwen.com/i16673634/bbd3e5dec037e72e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    解析

    流程说明
    1. 导入数据,按第一属性标签分类,排序
    2. 画出柱状图
    3. 顶端数值标注
    4. y,x 轴标注,标题标注
    5. 給属性标签区域上色
    图像解释

    x轴 是各系宝可梦的属性名字,依次为 虫、毒、一般、妖精等等;y轴是个体值平均数。这边常见的图怎么拿得出手,往下看。

    例 17

    棒棒糖图

    ax.vlines(x=df.index, ymin=0, ymax=df.Total, color='firebrick', alpha=0.7, linewidth=2)
    ax.scatter(x=df.index, y=df.Total, s=75, color='firebrick', alpha=0.7)
    
    102.png

    例 18

    赛跑图

    ax.hlines(y=df.index, xmin=300, xmax=720, color='gray', alpha=0.7, linewidth=1, linestyles='dashdot')
    ax.scatter(y=df.index, x=df.Total, s=75, color='firebrick', alpha=0.7)
    
    103.png

    结论

    虫系最弱,龙系最强,好真实啊。飞行系能排到第三没想到,可能是因为神兽都会飞吧。

    下期预告

    坡度图Slope Chart —— 宝可梦mega前后能力对比

    代码地址:见github主页ub3132003/pynotebook

    数据表格地址:https://raw.githubusercontent.com/ub3132003/pynotebook/master/data/pokemon.csv

    例程来自: machinelearningplus 感谢b站UP "菜菜TsaiTsai" 分享这个博客.

    相关文章

      网友评论

          本文标题:数据可视化50图(十) —— 3种宝可梦属性排行榜图

          本文链接:https://www.haomeiwen.com/subject/avqfwqtx.html