Python之matplotlib绘制折线图


Posted in Python onApril 13, 2022

前面我们已经构造了一种图形可视化的模板了,下面我们直接使用这个模板进行增添和修改,进一步的改善图形的外观。

import matplotlib.pyplot as plt
 
# 画布
plt.figure(figsize=(9,3),   # (宽度 , 高度) 单位inch 
           dpi=100,         #  清晰度 dot-per-inch
           facecolor='#CCCCCC', # 画布底色
           edgecolor='black',linewidth=0.2,frameon=True, # 画布边框
           #frameon=False  # 不要画布边框
          )         
 
# ax = plt.gca()
# ax.plot()
 
plt.plot()
plt.show()

Python之matplotlib绘制折线图

设置好基本的图形之后,我们就可以向上面添加一些数据了

(图例放置位置)

"""legend( handles=(line1, line2, line3),
           labels=('label1', 'label2', 'label3'),
           'upper right')
    The *loc* location codes are::
          'best' : 0,          (currently not supported for figure legends)
          'upper right'  : 1,
          'upper left'   : 2,
          'lower left'   : 3,
          'lower right'  : 4,
          'right'        : 5,
          'center left'  : 6,
          'center right' : 7,
          'lower center' : 8,
          'upper center' : 9,
          'center'       : 10,"""

折线图案例

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
 
# 画布
plt.figure(figsize=(15,5),   # (宽度 , 高度) 单位inch 
           dpi=100,         #  清晰度 dot-per-inch
           facecolor='#CCCCCC', # 画布底色
           edgecolor='black',linewidth=0.2,frameon=True, # 画布边框
           #frameon=False  # 不要画布边框
          )         
 
 
# 数据
x = np.linspace(0, 2 * np.pi, 50)  
y1 = np.sin(x)
y2 = np.cos(x)
df = pd.DataFrame([x,y1,y2]).T
df.columns = ['x','sin(x)','cos(x)']
 
# 图形
plt.plot(df['x'],df['sin(x)'],label='sin(x)')
plt.plot(df['x'],df['cos(x)'],label='cos(x)')
 
# 图例
plt.legend(loc='lower right')  # 不带参数的时候,使用图形的label属性
# plt.legend(labels=['sin','cos'])
 
# 标题
#plt.title("sin(x) and cos(x)",loc='center',y=0.85)
 
# 字体字典
font_dict = {'fontsize': 12, 'fontweight': 'bold', 'color': 'green'}
plt.title("sin(x) and cos(x)",loc='center',y=0.9, fontdict=font_dict)

Python之matplotlib绘制折线图

查看全局参数

# matplotlib.pyplot的全局参数
plt.rcParams
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
 
# 设置中文字体
plt.rcParams['axes.unicode_minus'] = False    # 不使用中文减号
plt.rcParams['font.sans-serif'] = 'FangSong'  # 设置字体为仿宋(FangSong)
# 画布
plt.figure(figsize=(15,5),   # (宽度 , 高度) 单位inch 
           dpi=120,         #  清晰度 dot-per-inch
           facecolor='#CCCCCC', # 画布底色
           edgecolor='black',linewidth=0.2,frameon=True, # 画布边框
           #frameon=False  # 不要画布边框
          )         
 
 
# 数据
x = np.linspace(0, 2 * np.pi, 50)  
y1 = np.sin(x)
y2 = np.cos(x)
df = pd.DataFrame([x,y1,y2]).T
df.columns = ['x','sin(x)','cos(x)']
 
# 图形
plt.plot(df['x'],df['sin(x)'],label='sin(x)')
plt.plot(df['x'],df['cos(x)'],label='cos(x)')
 
# 图例
plt.legend()
 
# 标题
#plt.title("sin(x) and cos(x)",loc='center',y=0.85)
 
# 字体字典
font_dict = {'fontsize': 10, 'fontweight': 'bold', 'color': 'grey'}
 
# 中文标题, 默认的字体不支持中文
plt.title("三角函数:正弦和余弦",loc='center',y=0.9, fontdict=font_dict)

Python之matplotlib绘制折线图

 改变字体

# 字体字典
font_dict = {'fontsize': 10, 'fontweight': 'bold', 'color': 'grey'}
 
# 中文标题, 默认的字体不支持中文
plt.title("三角函数:正弦和余弦",loc='center',y=0.9, fontdict=font_dict)

Python之matplotlib绘制折线图

添加X轴和Y轴

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
 
# 画布
plt.figure(figsize=(15,5),   # (宽度 , 高度) 单位inch 
           dpi=120,         #  清晰度 dot-per-inch
           facecolor='#CCCCCC', # 画布底色
           edgecolor='black',linewidth=0.2,frameon=True, # 画布边框
           #frameon=False  # 不要画布边框
          )         
 
 
# 数据
x = np.linspace(0, 2 * np.pi, 50)  # 
y1 = np.sin(x)
y2 = np.cos(x)
df = pd.DataFrame([x,y1,y2]).T
df.columns = ['x','sin(x)','cos(x)']
 
 
 
 
 
# 标题
#plt.title("sin(x) and cos(x)",loc='center',y=0.85)
 
# 字体字典
font_dict = {'fontsize': 10, 'fontweight': 'bold', 'color': 'black','fontfamily':'KaiTi'}
 
# 设置全局中文字体
plt.rcParams['font.sans-serif'] = 'KaiTi' # 设置全局字体为中文 楷体
plt.rcParams['axes.unicode_minus'] = False # 不使用中文减号
 
# 常用中文字体
# 宋体 SimSun
# 黑体 SimHei
# 微软雅黑 Microsoft YaHei
# 微软正黑体 Microsoft JhengHei
# 新宋体 NSimSun
# 新细明体 PMingLiU
# 细明体 MingLiU
# 标楷体 DFKai-SB
# 仿宋 FangSong
# 楷体 KaiTi
 
# 中文标题, 默认的字体不支持中文
plt.title("三角函数:正弦和余弦",loc='center',y=1, fontdict=font_dict)
 
# Axes 坐标系设置
ax = plt.gca()  # 获取当前坐标系
ax.set_facecolor('#FEFEFE')  # 设置坐标系参数。。。。
#plt.xlabel()  =>  ax.set_xlabel()
# ax.set_facecolor('#EE2211')
# ax.set_alpha(0.15)
# plt.title() => ax.set_title("AX TITLE")  
 
 
# X轴标签
plt.xlabel("X轴")  # loc: 左中右 left-center-right
# Y轴标签
plt.ylabel("Y轴")   # loc: 上中下 top-center-bottom
 
# X轴范围
plt.xlim(0,np.pi)  # 只显示X在0-Pi之间的部分
# Y轴范围
plt.ylim([0,1.1])  # 只显示Y在0-1之间的部分
 
# X轴刻度
xticks = np.array([0,1/4,2/4,3/4,1]) * np.pi      # X 轴上刻度的值
labels = ["0",'1/4 Π','1/2 Π','3/4 Π', 'Π']  # X 轴上刻度标签
plt.xticks(xticks, labels)   # 如果没有传入labels,直接使用ticks作为labels
# Y轴刻度
yticks = np.arange(0.0,1.2,0.2)     # X 轴上刻度的值
plt.yticks(yticks)   # 如果没有传入labels,直接使用ticks作为labels
 
# 根据刻度画网格线
#plt.grid()
plt.grid(axis='x')  # axis: both, x, y 在哪个轴上画格子
 
# 图形
plt.plot(df['x'],df['sin(x)'],label='sin(x)')
plt.plot(df['x'],df['cos(x)'],label='cos(x)')
 
# 图例
plt.legend()
# plt.legend(labels=['sin','cos'])

Python之matplotlib绘制折线图

 折线图绘制万能模板

# 处理数据
df = pd.read_csv(r'unemployment-rate-1948-2010.csv',usecols=['Year','Period','Value'])
df.replace('^M','-',regex=True, inplace=True)
df['year_month'] = df['Year'].astype('U') + df['Period']
 
# 设置画布和参数
plt.figure(figsize=(16,4), dpi=130, facecolor='white', edgecolor='black', frameon=True)# 画布底色
 
 
# 添加数据
plt.plot(df['year_month'], df['Value'],'c')#改变颜色和线条
 
'''
一般不需要改动下面的,只需要设置一些固定常量
'''
 
# 构造X轴标签,一般不用设置
xticks = [df['year_month'][i] for i in np.arange(0,df['year_month'].size,15)]#X轴的显示
#X轴设置倾斜度,可以解决标签过长的问题,大小可以设置默认
plt.xticks(xticks,rotation=100,size=10)
 
# 设置图形上的各类主题值
plt.suptitle('主标题:unemployment-rate-1948-2010',size=17,y=1.0)
plt.title("绘制日期:2022年   昵称:王小王-123", loc='right',size=15,y=1)
 
plt.title("主页:https://blog.csdn.net/weixin_47723732", loc='left',size=12,y=1)
 
# 设置坐标轴上的字体标签
font_dict = {'fontsize': 15, 'fontweight': 'bold', 'color': 'black','fontfamily':'KaiTi'}
plt.xlabel('年月',font_dict)
plt.ylabel('失业率',font_dict)

Python之matplotlib绘制折线图

到此这篇关于matplotlib绘制折线图的基本配置(万能模板案例)的文章就介绍到这了!

Python 相关文章推荐
Python 面向对象 成员的访问约束
Dec 23 Python
python实现斐波那契递归函数的方法
Sep 08 Python
Python简单删除列表中相同元素的方法示例
Jun 12 Python
python如何实现一个刷网页小程序
Nov 27 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
Python 硬币兑换问题
Jul 29 Python
python opencv实现gif图片分解的示例代码
Dec 13 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
python异常处理之try finally不报错的原因
May 18 Python
Visual Studio code 配置Python开发环境
Sep 11 Python
python3排序的实例方法
Oct 20 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 Python
Python之matplotlib绘制饼图
Python线程池与GIL全局锁实现抽奖小案例
Python之Matplotlib绘制热力图和面积图
Python matplotlib绘制雷达图
Python万能模板案例之matplotlib绘制甘特图
Python万能模板案例之matplotlib绘制直方图的基本配置
python创建字典及相关管理操作
You might like
改变Apache端口等配置修改方法
2008/06/05 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
js实现微信聊天界面
2020/08/09 Javascript
Python制作CSDN免积分下载器
2015/03/10 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
python生成密码字典的方法
2018/07/06 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
Python数据存储之 h5py详解
2019/12/26 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
Python 中如何写注释
2020/08/28 Python
SQL Server笔试题
2012/01/10 面试题
客服主管岗位职责
2013/12/13 职场文书
请假条怎么写
2014/04/10 职场文书
酒店节能降耗方案
2014/05/08 职场文书
119消防日活动总结
2014/08/29 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
十八大观后感
2015/06/12 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书