python国家数据可视化

导入数据文件(赋值给变量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))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值