import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
plt.rcParams['axes.unicode_minus'] = False
df=pd.read_csv('Pokemon.csv',encoding='utf-8')
df_index=df.columns.str.lower()#获取表格的列名
df.columns=df_index
#直方图 hist :
bins = range(0, 200, 20)
plt.hist(df['attack'], width=18, color="b", edgecolor='y')
plt.title('宠物攻击力分布直方图')
plt.xlabel('攻击力')
plt.ylabel('数量')
plt.axvline(df['attack'].mean(), linestyle="dashed", color="r")
plt.show()
#散点图 scatter:
# water = df[(df['type 1'] == 'Water') | (df['type 2'] == 'Water')]
# fire = df[(df['type 1'] == 'Fire') | (df['type 2'] == 'Fire')]
# plt.scatter(water.attack, water.defense, label='Water', color='blue')
# plt.scatter(fire.attack, fire.defense, label='Fire', color='red', marker='*')
# plt.legend() # 生成图例
# plt.xlabel("攻击力")
# plt.title("水系火系宠物攻击力/防御力分布散点图", color='red', fontsize=20)
# plt.ylabel("防御力")
# plt.show()
# 基于seaborn的散点直方图 jointplot:
# water = df[(df['type 1'] == 'Water') | (df['type 2'] == 'Water')]
# sns.jointplot(water.attack, water.defense)
# plt.show()
# 基于seaborn的分类统计图 countplot:
data = df['type 1'].value_counts().head(10)
index = list(data.index)
df = df[df['type 1'].isin(index)]
sns.set(style="darkgrid")
sns.countplot(x='type 1', data=df) # hue='legendary'
plt.show()