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的学习理解)——随机数做幸运值,绘制一周的幸运趋势相关推荐

  1. python【Matlibplot绘图库】多图合并显示(真の能看懂~!)

    文章目录 1 Subplot多合一显示 2 Subplot分格显示 2.1 Subplot 2.2 gridspec 2.3 subplots 3 图中图 4 次坐标轴 1 Subplot多合一显示 ...

  2. python各个绘图的作用,深度讲解Python四大常用绘图库的“绘图原理”

    转自:数据分析与统计学之美 为什么要写这篇文章? 最近有不少粉丝来问我,Python绘图库太多,我知不知道学哪一个?即使我选择了某一个绘图库后,我也不知道怎么学,我不知道第一步做什么,也不知道接下来该 ...

  3. python【Matlibplot绘图库】-主要概念

    文章目录 1.概述 2.各函数含义 3.numpy处理数据 1.概述 Matplotlib的GitHub链接: https://github.com/matplotlib/matplotlibMatp ...

  4. 肝!深度讲解Python四大常用绘图库的“绘图原理”

    为什么要写这篇文章? 最近有不少粉丝来问我,Python绘图库太多,我知不知道学哪一个?即使我选择了某一个绘图库后,我也不知道怎么学,我不知道第一步做什么,也不知道接下来该怎么做,四个字一学就忘. 其 ...

  5. 深度讲解 Python 四大常用绘图库的“绘图原理”

    作者 | 黄伟呢 整理 | 杨碧玉 出品 | 数据分析与统计学之美(ID:gh_21c25c7e71d0) 头图 |  CSDN 下载自视觉中国 为什么要写这篇文章? 最近有不少粉丝来问我,Pytho ...

  6. python绘图库_利用python中的绘图库绘图的方法介绍

    matplotlib是Python最著名的绘图库,本文给大家分享了利用matplotlib+numpy绘制多种绘图的方法实例,其中包括填充图.散点图(scatter plots).. 条形图(bar ...

  7. python实现直方图、条形图、折线图、饼图(参数详情)

    ,注意:条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的: 直方图是用面积表示各组频数的多少 1.直方图hist()函数 hist()函数: 直方图的参数只有一个X 参数说明: ...

  8. python【Matlibplot绘图库】画多个曲线的折线图(Matplotlib.pyplot.plot)

    文章目录 1.代码 2.输出 3.方法解释  这里我利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图: 1.代码 # -*- coding: UTF ...

  9. python【Matlibplot绘图库】利用matlibplot绘制雷达图

    文章目录 1.基本构造 2.比较功能 1.基本构造 之前在一些数据分析案例中看到用 Go 语言绘制的雷达图,非常的漂亮,就想着用matlibplot.pyplot也照着画一个,遗憾的是matlibpl ...

最新文章

  1. 你的能力代表你能走多远
  2. 修复Long类型太长转为JSON格式的时候出错的问题
  3. python3 bytes和str转换,解决图片base64调用api的问题
  4. 某pl/sql培训练习题
  5. 【LiveVideoStack线上分享】— FreeSWITCH核心架构与流程控制
  6. Shell脚本案例:批量新增用户
  7. linux性能记录,Linux性能记录
  8. 嵌入式实时操作系统的可裁剪性及其实现
  9. vector 内部方法大全 学习(初学者的参考资料)
  10. 工欲善其事必先利其器——MySQL数据库(2),查询操作
  11. 自动驾驶4WS车辆路径跟踪最优控制算法仿真
  12. 下载firebug网站
  13. (若依)RuoYi后台管理框架前端
  14. Java底层--JVM与GC
  15. Latex + vscode + SumatraPdf配置的一些历程
  16. 亚商投资顾问 早餐FM/0407融资余额创新高
  17. 外网如何访问内网/局域网网站【内网穿透】
  18. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒
  19. Nginx反向代理与负载均衡
  20. miniui excel导出

热门文章

  1. 解决win11默认网关不可用导致间歇性信号不佳的问题
  2. 一个关于椭圆曲线密码学的初级读本
  3. 英语中涉及的计算机名词,计算机常用名词的英语翻译
  4. visual studio code 重置所有设置(还原默认设置)
  5. 7-5 部落 (20 分)
  6. iphonex正面图_iphoneX真机图片一览 iphoneX真机图片曝光
  7. 遭受家庭暴力,如何自救
  8. 游戏图标有哪些素材模板推荐
  9. python 培训 太原
  10. 今日头条这次瞄准了爱奇艺,只因张一鸣内心住着小马哥