数据可视化

对excel文件中的数据进行分析和可视化

1.数据的获取

​ 从https://datacatalog.worldbank.org/dataset/gender-statistics网站下载数据集,从中找到中国的数据,保存在china.xlsx文件中。
文件分享:
链接:https://pan.baidu.com/s/17Bu8AHfjMDzG0oura4sXEA
提取码:xlsx

数据包含人口信息,个年龄段人口占比,男女比例,GDP等数据,如下图:

2.可视化展示

​ 导入相关库,完成初始化

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib import cmplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 设置字体,否则中文会显示异常
df = pd.read_excel("china.xlsx")  # 使用pandas读取excel文件
2-1 人口增长折线图

​ 使用pandas库读取excel表格中最后一行数据,绘制出折线图,其中N表示步长,可自由指定(下同)。

N = 3
year = df.columns.values.tolist()[4:-2:N]
data = df.iloc[-1].values.tolist()[4:-2:N]
data = np.asarray(data) / 1e+8
plt.figure(figsize=(12,8))
plt.title("中国总人口(亿人)")
plt.plot(year, data,  marker='o', c='red', mec='blue', mfc='g')plt.xlabel("年份/年")
plt.ylabel("人口/亿人")
for a, b in zip(year, data):plt.text(a, b, '%0.2f' % b, ha='right', va='bottom', fontsize=8)plt.grid()
plt.show()

​ 可视化效果:

2-2 男女比例柱状图

​ 读取excel文件 “Population, female (% of total)” 对应行数据,用numpy做适当处理,使男女比例展示出来的效果较为明显,绘制出柱状图。

N = 2
year = df.columns.values.tolist()[4:-2:N]
data = df.iloc[-2].values.tolist()[4:-2:N]
female = np.abs(np.asarray(data) - 45) + 10
male = np.abs(100 - np.asarray(data) - 45) + 10fig = plt.figure(figsize=(12, 8))size = len(data)
print(size)
x = np.arange(size)
bar_width = 0.4plt.title("男女比例")
plt.ylim(0, 20)
plt.ylabel("比\n例", rotation=0)
plt.yticks([0, 15], ["$0\%$", "$50\%$"])
plt.xticks(x, year, rotation=45)
plt.xlabel("年份")
plt.bar(x, female,  width=bar_width, label='女性人口占比')
plt.bar(x + bar_width, male, width=bar_width, label='男性人口占比')plt.legend()
plt.show()

​ 可视化效果;

2-3 各年龄段人口所占比例堆积柱状图

​ 使用pandas库读取"Population ages 65 and above (% of total)", “Population ages 15-64 (% of total)”, "Population ages 0-14 (% of total)"三行数据,运用numpy库做相应运算,绘制堆积柱状图。

N = 2
fig, ax = plt.subplots(figsize=(12, 8))
year = df.columns.values.tolist()[4:-2:N]
# print(year)
age_0_14 = df.iloc[22].values.tolist()[4:-2:N]
age_15_64 = df.iloc[24].values.tolist()[4:-2:N]
age_65_above = df.iloc[28].values.tolist()[4:-2:N]ax.bar(year, [100] * len(year), label='Population ages 65 and above (% of total)')
plt.bar(year, np.asarray(age_15_64) + np.asarray(age_0_14), label="Population ages 15-64 (% of total)")
plt.bar(year, age_0_14, label="Population ages 0-14 (% of total)")plt.title("各年龄段人口所占比例")
# ax.legend(["Population ages 65 and above (% of total)", "Population ages 15-64 (% of total)", "Population ages 0-14 (% of total)"])ax.legend(loc=3, bbox_to_anchor=(0, 1.05))
plt.show()

可视化效果:

2-4 中国GDP南丁格尔玫瑰图(极坐标图)

​ 读取对应行数据,对数据进行开n次方根,目的是缩小数据之间的差距,便于得到更好的展示效果,绘制时使用渐变色进行填充。

N = 2year = df.columns.values.tolist()[4:-2:N]
# print(year)rdata = df.iloc[17].values.tolist()[4:-2:N]
data = np.power(np.asarray(rdata), 1 / 7)theta = np.linspace(0, 2 * np.pi, len(data))  # 等分极坐标系# 设置画布
fig = plt.figure(figsize=(12, 12),  # 画布尺寸facecolor='lightyellow'  # 画布背景色)# 设置极坐标系
ax = plt.axes(polar=True)  # 实例化极坐标系
# ax.set_theta_direction(-1)  # 顺时针为极坐标正方向
ax.set_theta_zero_location('N')  # 极坐标 0° 方向为 N# 设置渐变色
norm = plt.Normalize(data.min(), data.max())
norm_y = norm(data)
map_vir = cm.get_cmap(name='Reds')
color = map_vir(norm_y)# 在极坐标系中画柱形图
ax.bar(x=theta,  # 柱体的角度坐标height=data,  # 柱体的高度, 半径坐标width=np.pi * 2 / len(data),  # 柱体的宽度# color=np.random.random((len(data), 3))color=color)# 绘制中心空白
ax.bar(x=theta,  # 柱体的角度坐标height=18,  # 柱体的高度, 半径坐标width=0.33,  # 柱体的宽度color='white',)ax.bar(x=theta,  # 柱体的角度坐标height=21,  # 柱体的高度, 半径坐标width=0.33,  # 柱体的宽度color='white',alpha=0.4)for angle, rd, d, year in zip(theta, rdata, data, year):ax.text(angle+0.05, d + 7, "{:.1e} \n".format(rd) + str(year), fontsize=8, rotation=0)  # "%.2e" % data
ax.set_axis_off()
plt.title("GDP (current US$)")
plt.show()

可视化效果:

matplotlib对excel数据可视化相关推荐

  1. pandas结合matplotlib将excel数据可视化

    用pandas将数据读出来 import pandas as pd data = pd.read_excel('D:\\python_workspace\\data.xlsx') 用matplotli ...

  2. python matplotlib 地图_Python数据可视化,看这篇就够了

    说到python的常见应用,很多人会想到python的数据分析,作为数据分析中的表现层面,数据可视化都是其中必不可少的部分.但本文并非只推荐无任何数据分析需求仅需要做漂亮可视化图表的人学习python ...

  3. 数据可视化一:Excel数据可视化

    数据可视化一:Excel数据可视化 目录: 1.直方图: 2.百分比柱形堆积图: 3.折线图: 4.圆饼图: 5.散点图: 1.直方图: (1)直方图:又称质量分布图.柱状图,是一种统计报告图,也是表 ...

  4. 实验报告-Excel数据可视化

    课程:大数据可视化 实验室名称: 指导老师: 实训日期: 年 月 日 实训题目:Excel数据可视化 实训目的: 一.掌握函数和公式的原理 二.掌握在单元格或编辑栏中直接输入带函数的公式的方法 三.掌 ...

  5. 《Excel数据可视化:一样的数据不一样的图表》——导读

    前 言 Excel不仅是实现数据记录.整理.分析的办公自动化软件,还是数据可视化的工具.在 Excel的强大功能中,图表可算是"三大元老"之最,它最丰富多彩.最直观简略.最通俗易懂 ...

  6. Excel数据可视化图表设计需要注意的几个问题

    ​大数据发展迅速的时代,数据分析驱动商业决策.对于庞大.无序.复杂的数据要是没经过合适的处理,价值就无法体现. 可以想象一本没有图片的教科书.没有图表.图形或是带有箭头和标签的插图或流程图,那么这门学 ...

  7. 《Excel数据可视化:一样的数据不一样的图表》——3.5用图标集让你的数据大放异彩...

    本节书摘来自华章计算机<Excel数据可视化:一样的数据不一样的图表>一书中的第3章,第3.5节,作者 恒盛杰资讯,更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...

  8. python用for循环画多个图形_Python matplotlib读取excel数据并用for循环画多个子图subplot操作...

    Python matplotlib读取excel数据并用for循环画多个子图subplot操作,英语,总分,平均,数据,语文 Python matplotlib读取excel数据并用for循环画多个子 ...

  9. 《Excel数据可视化:一样的数据不一样的图表》——2.2 表示数据稳定性的标准差和变异系数...

    本节书摘来自华章计算机<Excel数据可视化:一样的数据不一样的图表>一书中的第2章,第2.2节,作者 恒盛杰资讯,更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...

最新文章

  1. Android 平台的Crash崩溃捕获-全
  2. Java 和 HTTP 的那些事(四) HTTPS 和 证书
  3. python爬虫案例-python爬虫详细解析附案例
  4. oracle 树状结构一直出现不了_SEO站内优化:网站结构优化(十一)
  5. 数据操纵语言 ,DML, 增删改
  6. Linux bash总结(一) 基础部分(适合初学者学习和非初学者参考)
  7. matlab是那个国家,这是一个老外写的利用曲率来识别硬币的MATLAB程序。作者所在国家的硬币偏黄色,拍摄的时候反光比较少...
  8. MySQL的crash-safe原理详解
  9. java零碎要点---用java实现生成二维码,与解析代码实现
  10. 思考模式之“5W1H“
  11. hdu 5144 NPY and shot
  12. code3:使用set判断数组中是否有重复值
  13. adobenbsp;dreamweavernbsp;cs5序列号不对,…
  14. python 获取股市数据 baostock + 画K线图 mpl_finance
  15. css实现tab切换时下划线动画效果
  16. 用EXCEL制作“倒计时器
  17. 企企通:企业供应商风险管理,如何用采购管理软件赋能?
  18. 大学生如何正确使用手机便捷支付
  19. 物联网定位技术|实验报告|实验一 Wi-Fi指纹定位
  20. 厚基础Linux——第二周作业

热门文章

  1. delphi每次mysql密码BDE_关于DELPHI中BDE连接不上ORACLE数据库的問題
  2. 第三方SDK开发入门
  3. 物联网毕业设计 - 基于单片机的自动写字机器人
  4. grails Domian对象转JSON去class以及自己定义字段的最佳方式
  5. 使用region注释,将代码块收(折叠)起来
  6. Wifi的密码长度有何限制
  7. 好用全面的电商评论文本情感分析实战教程
  8. 王道数据结构课代表 - 考研数据结构 第五章 树和二叉树 究极精华总结笔记
  9. 基于BERT的新闻文本分类
  10. 【2022国赛模拟】摆(bigben)——行列式、杜教筛