导入数据文件(赋值给变量df),查看数据前几行及数据表信息
`import pandas as pd
import numpy as np
df=pd.read_csv('C:/Users/lan/Desktop/python/data/WorldIndex.csv')
print(df)`
删除数据里包含缺失值的行
df=df.dropna(how='any')
df
重新定义列名为[‘country’, ‘continent’, ‘life’, ‘gdp’, ‘popu’]
df.columns = ['country', 'continent', 'life', 'gdp', 'popu']
df
探索GDP数据的分布情况
`import seaborn as sns
ax=sns.histplot(df['gdp'])`
绘制人均寿命数据的直方图
ax=sns.histplot(df['life'])
绘制人均GDP直方图
设置坐标轴及图表名称:x-‘人均GDP(美元)’,y-‘国家个数’,title-‘国家人均GDP’
`ax=sns.histplot(df['gdp'])
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.xlabel('人均GDP(美元)');
plt.ylabel('国家个数');
plt.title('国家人均GDP');`
绘制人均寿命箱线图
import matplotlib.pyplot as plt
plt.boxplot(df['life'])
plt.show()
统计每个大洲的国家个数并绘制条形图
cs = df.groupby('continent').count().reset_index()
cs
plt.bar(x = cs['continent'], #指定条形图x轴的刻度值(有的是用left,有的要用x)
height =cs['country'], #指定条形图y轴的数值(python3.7不能用y,而应该用height)
color = 'steelblue', #指定条形图的填充色
)
绘制各大洲国家数量占比的饼图
标记每块区域的名称
labels=cs['continent']
X=cs['country']
fig = plt.figure()
plt.pie(X,labels=labels,autopct='%1.2f%%') #画饼图(数据,数据对应的标签,百分数保留两位小数点)
plt.title("大洲饼图")
plt.show()
用散点图绘制人均寿命和人均GDP的关系
x轴使用人均GDP数据进行绘制
plt.scatter(df['life'], df['gdp'],c=df['life'])#设定随机颜色和点的外廓
绘制各国健康和经济水平关系
使用散点图绘制,添加合适的轴标注和图表名称
x轴使用人均GDP数据的log值进行绘制、y轴使用人均寿命数据
设置各个数据点的大小,与人口数成正比
给不同洲的国家设置不同的颜色
对India和China所处的数据点进行文本标注
df['log_gdp']=np.log(df['gdp'])#处理gdp数据
c_dict = {'Africa' :'#0000FF','Asia' :'#A52A2A','Europe' : '#008B8B','North America' : '#008000','Oceania' :'#FFA500','South America' : '#FFFF00'}
c1=df['continent'].tolist()#建立一个关于洲颜色的数据集
c2=[]
for i in c1:
c2.append(c_dict[i])#建立一个对应的颜色集
print(df[df['country']=='China'])
print(df[df['country']=='India'])
plt.title('各国健康和经济水平关系')
plt.xlabel('gdp')
plt.ylabel('life')
plt.scatter(df['log_gdp'], df['life'],c=c2,s=df['popu']/6000000)
plt.annotate(s='India' ,xy=(a1,75.986341) ,xytext=(a1,75.986341))
plt.annotate(s='China' ,xy=(a2,68.348561) ,xytext=(a2,68.348561))