python使用matplotlib2D绘图库的折线图绘制小案例(方便matplotlib的学习理解)——随机数做幸运值,绘制一周的幸运趋势
python使用matplotlib2D绘图库的折线图绘制小案例(方便matplotlib的学习理解)——随机数做幸运值,绘制一周的幸运趋势
QQ:3020889729 小蔡
- 小案例内容简介
- 实例
- 第一步·引入需要的库
- 第二步·添加本地字体+设置图标大小【案例中使用的是华文行楷】
- 第三步·获取幸运值
- 第四步·设置x轴/y轴的坐标值和坐标值替换
- 第五步·将预设的坐标值固定到对应的坐标轴上
- 第六步·设置折线图的轴注释和标题
- 第七步·绘值所需要展现的两条折线图
- 首先得到之前获取的幸运值信息
- 绘制幸运折线
- 第八步·最后一步——显示绘制的图形
- 一些知识点补充
- plt.figure中的figsize和dpi含义
- 画图的保存
- 完整代码
QQ:3020889729 小蔡
本文意在促进理解,不涉及高深操作~大佬们莫见怪(lll¬ω¬)
小案例内容简介
以两条线折线,分别表示自己和别人的幸运走势——一共取7天,每一天有一个幸运值;两条折线观看自己的幸运走势。
那~走起
实例
(如能理解的,可直接移至文末,代码会完整放在那里,还有完整效果图)
第一步·引入需要的库
首先明确目标:
- 需要matplotlib中的pyplot,所以引用pyplot
- 要显示中文(幸运值,周几),所以应该在绘制图形时,添加本地字库
- 获取随机值,那么我们也应该再引入random
# 完成绘制一个网格图,包含两条主线,意味着每天的幸运值
# 一条自己,一条其它人from matplotlib import pyplot as plt # 引入绘图
from matplotlib.font_manager import FontProperties # 引入本地字库,添加字体
import random # 引入随机数
第二步·添加本地字体+设置图标大小【案例中使用的是华文行楷】
映入本地字体,替代默认字体,就是为了避免中文乱码或者无法显示~
如何找到自己的本地字体——可以先点击C盘,进入windows文件夹,中间段会有一个Font文件进入,那就是我们的字体了——找到一个兼容中文的字体,右键进入属性,点击安全,复制对象名称即可——不过要记得转换为小写盘符哦~
# 解决中文显示问题——引入字库
font = FontProperties(fname=r"c:\Windows\Fonts\STXINGKA.TTF",size=14) # 引入本地字库
# 设置图表大小 (放在所有图表设置前为好)
plt.figure(figsize=(15,8),dpi=80)
上面的FontProperties的参数中,fname=r"字体地址"——要注意,盘符要小写哦,大写无法识别
第二个参数设置字体大小~
第三步·获取幸运值
获取自己和其他人的幸运值要采用random的randint:ps:randint(左闭右闭)
# 幸运值(默认范围:0~10)
my_luck = [random.randint(0,10) for i in range(0,7)] # 推导列表
other_luck = [random.randint(0,10) for i in range(0,7)]
第四步·设置x轴/y轴的坐标值和坐标值替换
首先设置好基本的x,y轴值:星期作为x轴,幸运值作为y轴
# 天数(一周)
x = [i for i in range(1,8)] # 取周一到周七
# 坐标值对应的描述替换——就是把1,2,3换成周一,周二
# .format(i),知道这里的用法就可以了——具体的话我末尾会附上的
_xaxis_label = ["周{}".format(i) for i in x]# 幸运值(默认范围:0~10)
y = [i for i in range(0,11)] # 取幸运值0~10
# 坐标值对应的描述替换
_yaxis_label = ["幸运值{}".format(i) for i in y]
这一步不清楚的不要急,马上就可以清除是做什么用的了
第五步·将预设的坐标值固定到对应的坐标轴上
下面的rotation是根据需要设置的,但是为了每一个坐标值得到好的实现,我们可以轻微偏移一定的角度~
但是fontproperties调用字库却是必须的,因为只有这样添加了属性,才能实现字体的应用~
设置x轴的轴域:
# x 轴值设置
plt.xticks(x,_xaxis_label,fontproperties=font,rotation=45) # rotation设置角度,fontproperties调用字库
x轴设置的效果:
设置y轴的轴域:
# y 轴值设置
plt.yticks(y,_yaxis_label,fontproperties=font)
y轴设置的效果:
第六步·设置折线图的轴注释和标题
使用的方法有:
- title——设置标题
- xlabel——设置x轴注释
- ylabel——设置y轴注释
# 设置坐标轴注释
plt.xlabel("日期",fontproperties=font)
plt.ylabel("幸运度",fontproperties=font)
# 设置表格标题
plt.title("随机幸运值图表",fontproperties=font)
效果:
第七步·绘值所需要展现的两条折线图
首先得到之前获取的幸运值信息
用两个新列表装信息
# 幸运值设定
y1 = my_luck
y2 = other_luck
绘制幸运折线
使用的方法有:
- plot——绘折线图
- legend——标志图例
# 绘制图形
plt.plot(x,y1,label="My_Lucky") # label为该折线添加指定的图例
plt.plot(x,y2,label="Other_Lucky")
# 显示图例
plt.legend(prop=font) # 调用legend方法,才能真正实现图例了
# 如果你的图例标签设置的是中文,就要这样添加prop引用当前引入的本地字体,否者可以不用添加任何东西
图例使用:(模板)
①plt.plot(x,y,label="")
②plt.legend()
第八步·最后一步——显示绘制的图形
直接调用就好
# 显示图形
plt.show()
至于效果图,如下:
我们可以添加网格,这样有时候会让我们分析的更精确~
在plt.show之前添加才有效哦
# 设置网格
plt.grid()
效果:现在看起来,更容易知道最值分布(折线对应的网格线上)
一些知识点补充
plt.figure中的figsize和dpi含义
figsize含义:
- 后变跟一个二元元组
- 二元元组前后参数分别指的是:宽占比值,高占比值
dpi是指图片分辨率(及图片大小,默认为100):
- 默认为100时,图片尺寸为 figsize的宽高比值*100
- 计算当前大小——(x宽占比值)(x*高占比值),x指的是当前dpi的值
画图的保存
参数为文件名,没有就创建,有就覆盖~
dpi参数就和之前设置的的图片分辨率对应就可以了~
注意,默认是保存png~
# 保存图片——放在展示前边
plt.savefig("photo1",dpi=80) # dpi是分辨率
完整代码
# 完成绘制一个网格图,包含两条主线,意味着每天的幸运值
# 一条自己,一条其它人from matplotlib import pyplot as plt # 引入绘图
from matplotlib.font_manager import FontProperties # 引入本地字库,添加字体
import random # 引入随机数# 解决中文显示问题——引入字库
font = FontProperties(fname=r"c:\Windows\Fonts\STXINGKA.TTF",size=14) # 引入本地字库# 设置图表大小 (放在所有图表设置前为好)
plt.figure(figsize=(15,8),dpi=80)# 天数(一周)
x = [i for i in range(1,8)] # 取周一到周七
# 坐标的值对应的替换描述
_xaxis_label = ["周{}".format(i) for i in x]# 幸运值(默认范围:0~10)
y = [i for i in range(0,11)] # 取幸运值0~10
# 坐标的值对应的替换描述
_yaxis_label = ["幸运值{}".format(i) for i in y]# 自己的幸运值序列
my_luck = [random.randint(0,10) for i in range(0,7)] # 推导列表
other_luck = [random.randint(0,10) for i in range(0,7)]# x 轴值设置
plt.xticks(x,_xaxis_label,fontproperties=font,rotation=45) # rotation设置角度,fontproperties调用字库# y 轴值设置(一条自己,一条其他人)
y1 = my_luck
y2 = other_luck
plt.yticks(y,_yaxis_label,fontproperties=font)# 设置坐标轴注释
plt.xlabel("日期",fontproperties=font)
plt.ylabel("幸运度",fontproperties=font)# 设置表格标题
plt.title("随机幸运值图表",fontproperties=font)# 设置网格
plt.grid()# 绘制图形
plt.plot(x,y1,label="My_Lucky") # label添加指定的图例
plt.plot(x,y2,label="Other_Lucky")# 显示图例
plt.legend(prop=font)# 保存图片——放在展示前边
plt.savefig("photo1",dpi=80) # dpi是分辨率# 显示图形
plt.show()
效果:实现了图片保存到当前目录下
最后,祝大家学习愉快~工作顺利
头发越来越多哈~(●’◡’●)
python使用matplotlib2D绘图库的折线图绘制小案例(方便matplotlib的学习理解)——随机数做幸运值,绘制一周的幸运趋势相关推荐
- python【Matlibplot绘图库】多图合并显示(真の能看懂~!)
文章目录 1 Subplot多合一显示 2 Subplot分格显示 2.1 Subplot 2.2 gridspec 2.3 subplots 3 图中图 4 次坐标轴 1 Subplot多合一显示 ...
- python各个绘图的作用,深度讲解Python四大常用绘图库的“绘图原理”
转自:数据分析与统计学之美 为什么要写这篇文章? 最近有不少粉丝来问我,Python绘图库太多,我知不知道学哪一个?即使我选择了某一个绘图库后,我也不知道怎么学,我不知道第一步做什么,也不知道接下来该 ...
- python【Matlibplot绘图库】-主要概念
文章目录 1.概述 2.各函数含义 3.numpy处理数据 1.概述 Matplotlib的GitHub链接: https://github.com/matplotlib/matplotlibMatp ...
- 肝!深度讲解Python四大常用绘图库的“绘图原理”
为什么要写这篇文章? 最近有不少粉丝来问我,Python绘图库太多,我知不知道学哪一个?即使我选择了某一个绘图库后,我也不知道怎么学,我不知道第一步做什么,也不知道接下来该怎么做,四个字一学就忘. 其 ...
- 深度讲解 Python 四大常用绘图库的“绘图原理”
作者 | 黄伟呢 整理 | 杨碧玉 出品 | 数据分析与统计学之美(ID:gh_21c25c7e71d0) 头图 | CSDN 下载自视觉中国 为什么要写这篇文章? 最近有不少粉丝来问我,Pytho ...
- python绘图库_利用python中的绘图库绘图的方法介绍
matplotlib是Python最著名的绘图库,本文给大家分享了利用matplotlib+numpy绘制多种绘图的方法实例,其中包括填充图.散点图(scatter plots).. 条形图(bar ...
- python实现直方图、条形图、折线图、饼图(参数详情)
,注意:条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的: 直方图是用面积表示各组频数的多少 1.直方图hist()函数 hist()函数: 直方图的参数只有一个X 参数说明: ...
- python【Matlibplot绘图库】画多个曲线的折线图(Matplotlib.pyplot.plot)
文章目录 1.代码 2.输出 3.方法解释 这里我利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图: 1.代码 # -*- coding: UTF ...
- python【Matlibplot绘图库】利用matlibplot绘制雷达图
文章目录 1.基本构造 2.比较功能 1.基本构造 之前在一些数据分析案例中看到用 Go 语言绘制的雷达图,非常的漂亮,就想着用matlibplot.pyplot也照着画一个,遗憾的是matlibpl ...
最新文章
- 你的能力代表你能走多远
- 修复Long类型太长转为JSON格式的时候出错的问题
- python3 bytes和str转换,解决图片base64调用api的问题
- 某pl/sql培训练习题
- 【LiveVideoStack线上分享】— FreeSWITCH核心架构与流程控制
- Shell脚本案例:批量新增用户
- linux性能记录,Linux性能记录
- 嵌入式实时操作系统的可裁剪性及其实现
- vector 内部方法大全 学习(初学者的参考资料)
- 工欲善其事必先利其器——MySQL数据库(2),查询操作
- 自动驾驶4WS车辆路径跟踪最优控制算法仿真
- 下载firebug网站
- (若依)RuoYi后台管理框架前端
- Java底层--JVM与GC
- Latex + vscode + SumatraPdf配置的一些历程
- 亚商投资顾问 早餐FM/0407融资余额创新高
- 外网如何访问内网/局域网网站【内网穿透】
- 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒
- Nginx反向代理与负载均衡
- miniui excel导出