前言

分布图有超过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)

图像解释

解析

代码解析

“# Prepare data”

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

“ # Draw”

例 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)

图像解释

用颜色映射画属性分布密度

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)

图像解释

例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)

图像解释

中场休息

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

例24 赛道与分布

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

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

图像解释

结论

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

下期预告

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

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

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

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

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

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

,