前言
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)解析
流程说明
- 导入数据,按第一属性标签分类,排序
- 画出柱状图
- 顶端数值标注
- y,x 轴标注,标题标注
- 給属性标签区域上色
图像解释
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" 分享这个博客.
网友评论