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笔记(叁)继续学习
Oct 24 Python
Python多线程学习资料
Dec 19 Python
Python显示进度条的方法
Sep 20 Python
Python 多核并行计算的示例代码
Nov 07 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
python爬取网易云音乐评论
Nov 16 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
Django--权限Permissions的例子
Aug 28 Python
基于tensorflow for循环 while循环案例
Jun 30 Python
python uuid生成唯一id或str的最简单案例
Jan 13 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 Python
Python之matplotlib绘制饼图
Python线程池与GIL全局锁实现抽奖小案例
Python之Matplotlib绘制热力图和面积图
Python matplotlib绘制雷达图
Python万能模板案例之matplotlib绘制甘特图
Python万能模板案例之matplotlib绘制直方图的基本配置
python创建字典及相关管理操作
You might like
加强版phplib的DB类
2008/03/31 PHP
PHP APC的安装与使用详解
2013/06/13 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
Python可变参数用法实例分析
2017/04/02 Python
Python实现选择排序
2017/06/04 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
python实现复制大量文件功能
2019/08/31 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
Python项目跨域问题解决方案
2020/06/22 Python
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
JDK安装目录下有哪些内容
2014/08/25 面试题
校园文化建设方案
2014/02/03 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
电气工程自动化求职信
2014/03/14 职场文书
对祖国的寄语大全
2014/04/11 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
企业职业病防治方案
2014/05/29 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书