十大种族值低最强宝可梦(数据可视化50图十三)

前言

分布图有超过15个例子,主要研究了总用800值精灵,18种主属性的数量,和对应的能力值分布。头条不能插入表格,数据表见文后链接。

十大种族值低最强宝可梦(数据可视化50图十三)(1)

例20 连续分布直方图

# Prepare data df=df_raw[df_raw["Generation"]<4] x_var = 'Total' groupby_var = 'Type 1' df_agg = df.loc[:, [x_var, groupby_var]].groupby(groupby_var) vals = [df[x_var].values.tolist() for i, df in df_agg] ​ # Draw plt.figure(figsize=(20,9), dpi= 80) colors = [plt.cm.Spectral(i/float(len(vals)-1)) for i in range(len(vals))] n, bins, patches = plt.hist(vals, 30, stacked=True, density=False, color=colors[:len(vals)])

十大种族值低最强宝可梦(数据可视化50图十三)(2)

图像解释

  • 例如最右边780个体值这一列一共五个宝可梦,分别为龙,草2,超能力,水。
  • 不同颜色对应不同属性;
  • Y轴 一种颜色的高度表示这个属性的宝可梦数量。
  • X轴 一个条的宽度表示这个区间的能力值。
解析

代码解析

“# Prepare data”

选取前三代386只宝可梦作为总样本,计算各个属性的个数

“ # Draw”

  • plt.figure 设置画布的大小,不合适的大小会造成图片比例不合适很难看。
  • figsize=(20,9), dpi= 80 表示 20x9 每个像素高度为80 也就相当于1600x720的分辨率
  • plt.cm.Spectral matlib中的颜色映射 matplotlib 包种有很多配好的颜色组合 表示(B,G,R,A)4各通道的数列;其中BGRA都是0-1之间的小数。
  • plt.hist() 直方图。
  • 本文省略了标注的代码,需要代码可以上我的github看看。
例 21 类别分布直方图

# Prepare data df=df_raw[df_raw["Generation"]==1] x_var = 'Stage' groupby_var = 'Type 1' df_agg = df.loc[:, [x_var, groupby_var]].groupby(groupby_var) vals = [df[x_var].values.tolist() for i, df in df_agg] ​ # Draw plt.figure(figsize=(7,10), dpi= 80) colors = [plt.cm.Spectral(i/float(len(vals)-1)) for i in range(len(vals))] n, bins, patches = plt.hist(vals, df[x_var].unique().__len__(), stacked=True, density=False, color=colors[:len(vals)])

十大种族值低最强宝可梦(数据可视化50图十三)(3)

图像解释

X轴 表示 1,2,3,Mega阶段的进化,Y轴 表示数量。不颜色表示不同的主属性。本图数据为第一代151只宝可梦。

例 22 进化阶段能力值分布密度图

# Draw Plot plt.figure(figsize=(16,10), dpi= 80) sns.kdeplot(df.loc[cyl == 1, cty], shade=True, color="g", label="Stage=1", alpha=.7) sns.kdeplot(df.loc[cyl == 2, cty], shade=True, color="deeppink", label="Stage=2", alpha=.7) sns.kdeplot(df.loc[cyl == 3, cty], shade=True, color="dodgerblue", label="Stage=3", alpha=.7) sns.kdeplot(df.loc[cyl == 4, cty], shade=True, color="orange", label="Stage=Mega", alpha=.7)

十大种族值低最强宝可梦(数据可视化50图十三)(4)

图像解释

  • X轴 表示 个体值,
  • Y轴 表示数量。不颜色表示不同的主属性。
  • 颜色 表示 绿色1阶段,粉色2阶段,蓝色3阶段,Mega阶段的进化,
  • 本图数据为第一代151只宝可梦。
  • 可以看出,每次进化总体上能力值是上涨的。而且有些能力区间被避开了。
用颜色映射画属性分布密度

colors = [plt.cm.Spectral(i/float(len(type_list)-1)) for i in range(len(type_list))] for i,color in zip(type_list,colors): sns.kdeplot(df.loc[cyl == i, cty], shade=True, color=color, label=f"{i}", alpha=.7)

十大种族值低最强宝可梦(数据可视化50图十三)(5)

图像解释

  • X轴 表示 个体值,
  • Y轴 表示数量。百分比。比如虫系红色曲线,200这个能力值约占总宝可梦数量的0.002
  • 颜色 表示 6种属性 虫,龙,电,妖精,格斗,火,
  • 本图数据为第一代151只宝可梦。其中6种属性
  • 不同曲线整体包括的面积就是所有该属性的总宝可梦数量
例23 带直方图的密度分布

colors = [plt.cm.Paired(i/float(len(type_list)-1)) for i in range(len(type_list))] for i,color in zip(type_list,colors): sns.distplot(df.loc[cyl == i, cty], color=color, label=f"{i}",hist_kws={"alpha":.7},kde_kws={'linewidth':3})

十大种族值低最强宝可梦(数据可视化50图十三)(6)

图像解释

  • X轴 表示 个体值,
  • Y轴 表示数量。 曲线表示对直方图的光滑拟合。实际的数值是直方图表示的数值。
  • 颜色 表示 4种属性
  • 本图数据为第一代151只宝可梦。其中6种属性
  • 不同曲线整体包括的面积就是所有该属性的总宝可梦数量
中场休息

提出一个问题,可以看出这种密度图在变量多的时候会显得十分凌乱。特别是数值接近的时候。那么我们该如何解决?

例24 赛道与分布

import joypy #安装joypy fig, axes = joypy.joyplot(df, column=["HP","Speed"], by="Type 1", ylim='own',figsize=(14,20))

十大种族值低最强宝可梦(数据可视化50图十三)(7)

图像解释

  • X轴 数值大小,
  • Y轴 所占数量的比例
  • 赛道,表示其中18种属性。
  • 颜色 橘黄色表示速度,蓝色表示HP
  • 本图数据为第一代151只宝可梦
  • 不同曲线整体包括的面积就是所有该属性的总宝可梦数量
  • 例如:幽灵系中,HP(蓝色)大部分比速度(黄色)低。
结论

有了最后一个赛段分布,个个系的能力取舍就一目了然了。

下期预告

宝可梦属性与个体值的分布 2 —— 箱图与小提琴图

完整代码见我的github:ub3132003/pynotebook/plot/50grap

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

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

上期内容: 数据可视化50图(十二) —— 宝可梦mega前后排行分级哑铃图

如何运行代码教程:数据分析50图(前8例总结) —— 宝可梦能力值可视化

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页