matplotlib 折线图
1、基本要点
# 导入模块
from matplotlib import pyplot as plt # x轴数据
x = range(2, 26, 2)
# y轴数据
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 15] # 绘图
plt.plot(x, y) # 展示图片
plt.show()
注意: x轴和y轴是可迭代对象,x轴和y轴的数值必须一一对应, x和y中的值必须是数子
2、设置图行大小
plt.figure(figsize=(宽, 高), dpi=80)
# 注意:设置图形大小,要在绘图的前面
3、保存图片
plt.savefig('./名称.png')
# 注意:
# 保存图片要在,绘图之后
# 可以保存为矢量图(svg)
4、调整x轴或y轴上的刻度
plt.xticks(可迭代对象)
plt.yticks(可迭代对象)
# 注意:
# 调整x轴或y轴的刻度,要放在保存或展示图片的前面
例子
# 导入模块
from matplotlib import pyplot as plt # x轴数据
x = range(2, 26, 2)
# y轴数据
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 15] # 设置图形大小
plt.figure(figsize=(20, 8), dpi=80) # 绘图
plt.plot(x, y) # 调整x轴的刻度
plt.xticks(x)
# 调整y轴的刻度
plt.yticks(range(min(y), max(y) + 1)) # 保存图片
# plt.savefig('./test.svg')
# 展示图片
plt.show()
5、调整x轴或y轴的刻度并显示标签
plt.xticks(ticks, labels, rotation=45)
# 注意
# ticks和labels的数据类型最好是列表,方便调整刻度
# ticks和labels即数字和字符串要一一对应,步长也要一致
# rotation调整标签的旋转
例子
import random
from matplotlib import pyplot as plt y = [random.randint(20, 35) for i in range(120)] x = range(120) # 设置图形大小
plt.figure(figsize=(20, 8), dpi=80) # 绘图
plt.plot(x, y) # 设置x轴刻度
x = list(x)
x_labels = ['10H:{}M'.format(i) for i in range(60)]
x_labels += ['11H:{}M'.format(i) for i in range(60)]
plt.xticks(x[::3], x_labels[::3], rotation=45)
# 设置y轴刻度
plt.yticks(range(min(y), max(y) + 1)) # 展示图片
plt.show()
6、显示中文
a、查看字体
linux/mac查看支持的字体
fc-list # 查看支持的字体
fc-list :lang=Zhang # 查看支持的中文(冒号前面加空格) windows查看支持的字体
Win+R, 输入fonts
获取字体路径:
推荐使用git bash
查看字体
cd 'C:\Windows\Fonts'
ls -l
一般使用 msyh.ttc
b、设置
修改matplotlib的默认字体
1.matplotlib.rc,具体看源码(windows/linux),不是百分百成功
2.matplotlib下的font_manager(windwos/linux/mac),百分百成功
# 导入模块
from matplotlib import font_manager
# 设置显示中文
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc')
# 添加fontproperties=my_font的属性
plt.xticks(x[::3], x_labels[::3], rotation=45, fontproperties=my_font) # 注意: 设置中文显示时
# 只有plt.legend, 使用prop
# 其它使用fontproperties
例子
import random
from matplotlib import pyplot as plt
from matplotlib import font_manager # 设置显示中文
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc') y = [random.randint(20, 35) for i in range(120)] x = range(120) # 设置图形大小
plt.figure(figsize=(20, 8), dpi=80) # 绘图
plt.plot(x, y) # 设置x轴刻度,显示标签(中文)
x = list(x)
x_labels = ['10时:{}分'.format(i) for i in range(60)]
x_labels += ['11时:{}分'.format(i) for i in range(60)]
plt.xticks(x[::3], x_labels[::3], rotation=45, fontproperties=my_font)
# 设置y轴刻度
plt.yticks(range(min(y), max(y) + 1)) # 展示图片
plt.show()
7、设置描述信息
# 1. 设置x轴的label
plt.xlabel()
# 2. 设置y轴的label
plt.ylabel()
# 3. 设置title
plt.title() # 注意
# 设置描述信息要在保存、展示的前面
# 显示中文用fontproperties
例子
# 设置中文字体
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc')
# 描述信息
plt.xlabel('时间', fontproperties=my_font)
plt.ylabel('温度 单位(℃)', fontproperties=my_font)
plt.title('10点到12点每分钟的温度变化', fontproperties=my_font)
8、添加网格
plt.grid(alpha=0.5)
# alpha网格的alpha值(0~1)
# 在展示图片和保存图片前
9、添加图例
# 中文显示
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc')
# 绘图
plt.plot(x, y, label='该折线的描述名称')
# 添加图例
plt.legend(prop=my_font, loc='') # 注意: loc参数设置图例的位置,具体看源码,一般默认即可
# best
# upper right
# upper left
# lower left
# lower right
# right
# center left
# center right
# lower center
# upper center
# center
10、自定义绘图的风格
plt.plot(color='', linestyle='', linewidth= , alpha= )
# color 线条颜色
# 16进制的颜色代码
# linestyle 线条风格
# - 实线
# -- 虚线
# -. 点划线
# : 点虚线
# linewidth 线条粗细
# alpha 透明度
# 注意:这些风格对网格(grid())同样有效
例子
# -*- encoding: utf-8 -*- from matplotlib import pyplot as plt
from matplotlib import font_manager #
# 设置中文字体
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc') y1 = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
y2 = [1, 0, 3, 1, 2, 2, 3, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1]
x = range(11, 31)
# 设置图形大小
plt.figure(figsize=(20, 8), dpi=80)
# 绘图
plt.plot(x, y1, label='自己', linestyle=':')
plt.plot(x, y2, label='敌人', color='#00FF00') # 设置x轴y刻度
x = list(x)
x_labels = ['{}岁'.format(i) for i in x]
plt.xticks(x, x_labels, fontproperties=my_font)
plt.yticks(range(0, 7))
# 设置描述信息
plt.xlabel('年龄', fontproperties=my_font)
plt.ylabel('人数', fontproperties=my_font)
plt.title('11岁到30岁每年交的女朋友', fontproperties=my_font) # 绘制网格
plt.grid(alpha=0.8, linestyle=':', color='#DC143C') # 添加图例
plt.legend(prop=my_font) plt.show()
matplotlib 折线图的更多相关文章
- 练习: bs4 简单爬取 + matplotlib 折线图显示 (关键词,职位数量、起薪)
要看一种技术在本地的流行程度,最简单的就是找招聘网站按关键词搜索. 比如今天查到的职位数量是vue 1296个,react 1204个,angular 721个.国际上比较流行的是react,本地市场 ...
- python matplotlib 折线图
1.绘制折线图,去上和右边框,显示中文 import numpy as np import matplotlib.pyplot as plt #plt.style.use('default') #pl ...
- matplotlib折线图
绘制折线图:参考https://baijiahao.baidu.com/s?id=1608586625622704613 (3)近10年GDP变化的曲线图,及三次产业GDP变化的曲 ...
- python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
- 用matplotlib.pyplot画简单的折线图,直方图,散点图
#coding=utf-8 """ 用matplotlib.pyplot画简单的折线图,直方图,散点图 """ import matplot ...
- Matplotlib学习---用matplotlib画折线图(line chart)
这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图. 数据地址:https://raw.githubusercontent.com/jakevd ...
- 06. Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图
1.基本图表绘制 plt.plot() 图表类别:线形图.柱状图.密度图,以横纵坐标两个维度为主同时可延展出多种其他图表样式 plt.plot(kind='line', ax=None, figsiz ...
- python用matplotlib画折线图
折线图: import matplotlib.pyplot as plt y1=[10,13,5,40,30,60,70,12,55,25] x1=range(0,10) x2=range(0,10) ...
- python使用matplotlib绘制折线图教程
Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形.下面这篇文章主要介绍了python使用matplot ...
随机推荐
- 【mac】Mac 终端如何切换成管理员用户
方法1.打开终端输入 sudo su 然后回车 Password: ------(输入root密码即可) sh-3.2# -------- (输入执行的命令即可,例如 npm i -g np ...
- CodeForces 1096D(线性dp)
传送门 •题意 给出一个长度为n的字符串s,对于每个$s_{i}$有$a_{i}$的价值 让你删除最小的价值,使得字符串中不存在$hard$这个子序列 •思路 设dp[1]是不存在以$h$为前缀的最小 ...
- LightOJ - 1287 Where to Run (期望dp+记忆化)
题面: Last night you robbed a bank but couldn't escape and when you just got outside today, the police ...
- hdu 2454 Degree Sequence of Graph G(可简单图化判定)
传送门 •Havel-Hakimi定理: 给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化. 进一步,若图为简单图,则称此序列可简单图 ...
- 2018-2-13-win10-uwp-绑定静态属性
title author date CreateTime categories win10 uwp 绑定静态属性 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 1 ...
- geoip ip2region2 with spark
上一篇文章中 我使用 maxmind的免费库开发了一个waterdrop的 插件,测试数据发现,国内的有些市级还是不准确,而且香港并不是显示中国,这就不友好了. 找了一下,发下 ip2region 这 ...
- Python10_代码规范和可读性
养成好的编程习惯和方法对提升代码可读性至关重要. 1.类.模块.包:不要用下划线,命名要简短 2.类:命名最好以大写开头 3.模块.包:用小写单词 4.变量.函数.方法:可以用下划线提高可读性,尽量都 ...
- (转)hibernate缓存机制详细分析
在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别).二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题. 随笔虽长,但我相 ...
- IPv4数据报格式及其语义
一.IP数据报的格式如下图所示 版本 首部长度 服务类型 数据报长度 16比特标识 标志 13比特片偏移 寿命 上层协议 首部检验和 32比特源IP地址 32比特目的IP地址 选项(如果有的话) 数据 ...
- 解读中兴通信在物联网行业如何践行DDD
此前,在由 ThoughtWorks 举办的领域驱动设计峰会 DDD-China 2019 上,InfoQ 记者就开发团队为何需要 DDD.目前业界实践 DDD 的挑战等问题对中兴通讯资深软件架构师张 ...