利用Python Matplotlib库做简单的视觉化(2)
Matplotlib练习
- 题目
- 练习一
- 方法一(条形图)
- 方法一效果图
- 方法二(扇形图)
- 方法二效果图
- 练习二
- 练习二代码
- 练习二效果图
- 小结
题目
练习一
方法一(条形图)
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties# 处理中文字体的问题
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)# Question 1: 绘制班级的身高分布图形
# Data of question 1
height = [160, 163, 175, 180, 176, 177, 168, 189, 188, 177, 174, 170, 173, 181]
# 班级人数
totalNumber_students = len(height)# 首先处理数据 把重复的数据去除 但同时记下来重复的个数
height.sort()
number_students = []
for every_height in height:number_students.append(height.count(every_height))
data_pair = list(zip(height, number_students))for x, y in data_pair:if data_pair.count((x, y)) != 1:data_pair.remove((x, y))# 此方法的缺陷:此方法不方便添加数据标签
# 因为标签容易叠加在一起 导致分析不够直观以及视图不够美观
for (x, y) in data_pair:plt.bar(x, y, width=0.7, align='center')
plt.xlabel("身高", fontproperties=font)
plt.ylabel("人数", fontproperties=font)
plt.title("某班级的身高比例图", fontproperties=font)
plt.show()
方法一效果图
方法二(扇形图)
height.clear() # 清空原有的list,存放处理好的身高数据
number_students.clear() # 清空原有的list,存放处理好后的对应身高的人数/比例
explode = []
j = 0
for (x, y) in data_pair:height.append(str(x))number_students.append(y)
for i in range(len(number_students)):number_students[i] = number_students[i] / totalNumber_studentsexplode.append(j + 0.02*i)result = plt.pie(number_students, labels=height, explode=explode, autopct='%.2f%%', shadow=True)
patches, texts, auto_texts = result
# 美化视图
plt.setp(auto_texts, size=10, weight='bold', color='w')
plt.setp(texts, size=8, weight='bold', color='brown')
# 添加图例
plt.legend(loc="upper right", bbox_to_anchor=(1, 0, 0.32, 1))
# 标注必要信息
plt.text(1.3, -1, "班级总人数为" + str(totalNumber_students), fontproperties=font, color='blue')
# 添加标题
plt.title("某班级的身高比例图", fontproperties=font)
# 展示结果
plt.show()
方法二效果图
练习二
练习二代码
# Question 2: 实现对应的子图分部
import random
from matplotlib import pyplot as plt
# 创建画布
fig = plt.figure()# 定义布局的宽度、高度比例
width = (4, 1)
height = (1, 5)# 复杂的布局需要用gridspec对象,将fig的gridspec对象赋值给gs
gs = fig.add_gridspec(2, 2, width_ratios=width, height_ratios=height)# [行,列] 是从 [0,0] 开始的
# 绘制子图布局
ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[1, 0])
ax3 = fig.add_subplot(gs[1, 1])# 生成随机数
x = [random.randint(0, 30) for i in range(30)]
y = [random.randint(0, 30) for i in range(30)]# 绘制子图
ax1.plot(range(5), range(5)) # 直线图
ax2.scatter(x, y) # 散点图
ax3.plot(range(5), range(5)) # 直线图# 展示成果
plt.show()
练习二效果图
小结
- 扇形图的数据处理相对于条形图的数据处理繁琐一些。
- 练习一可以尝试用频次直方图。
- 练习一的坐标没有设置好。
- 练习二中的散点图是利用的随机生成的数字,所以每次运行后的结果会后偏差。
利用Python Matplotlib库做简单的视觉化(2)相关推荐
- 利用Python Matplotlib库做简单的视觉化
Matplotlib练习 练习一 题目 代码 效果图 练习二 题目 练习1代码 练习1效果图 练习2代码 练习2效果图 小结 练习一 题目 代码 import matplotlib.pyplot as ...
- 霍兰德人格分析:利用Python第三方库matplotlib绘制雷达图
美国约翰霍普金斯大学霍兰德教授认为,个人职业兴趣特性与职业之间应有一种内在的对应关系.根据兴趣的不同,人格可分为研究型(I).艺术型(A).社会型(S).企业型(E).传统型(C).现实型(R)六个维 ...
- Python学习-Matplotlib库绘制简单点阵图、线型图操作
Python学习-Matplotlib库绘制简单散点图图和线型图.标签设置以及刻度线设置操作 目录 1.Matplotlib绘图细节的简单理解 2.绘制点图.线型图 3.给图表设置复杂标注 4.移动刻 ...
- 利用python机器学习库进行Kaggle皮马印第安人糖尿病预测分析
利用python机器学习库进行Kaggle皮马印第安人糖尿病预测分析 项目摘要 本项目主要使用python对各医学参数与糖尿病之间的关系进行可视化分析.描述性分析.使用scikit-learn机器学习 ...
- 利用python—matplotlib绘制股票K线图
利用python-matplotlib绘制股票K线图 成品展示: 用Python绘制股票K线图并不复杂,不过得做好一些准备工作例如相关库的安装,库的引入.日期格式的调整and表格转换 文章目录 利用p ...
- python123九宫格输入_使用python PIL库实现简单验证码的去噪方法步骤
字符型图片验证码识别完整过程及Python实现的博主,我的大部分知识点都是从他那里学来的. 想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括: ...
- 利用python you-get库下载网络视频、音乐及图片
Python,让繁琐工作高效便捷:利用python you-get库单个.批量下载网络视频.音乐及图片,you-get命令需要在cmd窗口中运行. 很多人学习python,不知道从何学起. 很多人学习 ...
- Python - matplotlib库 - 中文字体设置
Python - matplotlib库 - 中文字体设置 在matplotlib绘制折线图柱状图时,如果对x,y,图表标题,直接使用plot.xlabel("时间"):plot. ...
- python 读取geotiff_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...
(1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...
最新文章
- PCI BAR设置过程
- 【JavaSE05】Java中方法与重载、递归
- 小学身高体重测试软件,学生身高、体重检测汇总分析
- Python函数式编程简介(一)高阶函数
- JQuery实现页面跳转
- 自定义ProgressBar(圆)
- php分布式缓存系统 Memcached 入门
- 王思聪在京被执行案和解了!已履行5000万
- update fabric from 1.3 to 1.8
- 企业生产一线管理应找怎样的好帮手?
- linux命名管道fifo通信示例
- 马克思主义基本原理习题册
- 「猪齿鱼」助力汉得信息智能制造集中交付高效协同
- Tims中国上市背后:以新流派打法,“开源”咖啡市场
- iText API操作doc文档
- BI神器Power Query(22)-- 同一列内多重替换(2)
- 文件管理nas php,家用nas安装配置可道云进行文件管理
- 第六讲 Linux字符设备驱动1
- 连夜整理了多年后端开发最常用linux指令(建议收藏,边用边学)
- 谷歌插件blazemeter添加到扩展程序时提示文件缺失不可读取问题解决
热门文章
- python面试题No6
- Leetcode 509. Fibonacci Number
- (C/C++) string / *char / int 基本轉換
- [靠谱原创!] SSH免密登录设置----原理详解+具体操作(全国人民看完都懂了!)
- PHP的学习--可变函数
- DataTable 中各种计算(笔记)
- log4net使用注意
- 修改Google toolbar for firefox的默认语言
- 计算机缺考学校知道吗,计算机二级机考缺考成绩单会不会显示缺考啊
- linux日志auditd,linux 审计工具auditd日志audit.log时间戳转换查看