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 getopt 参数处理小示例
Jun 09 Python
Django如何配置mysql数据库
May 04 Python
TensorFlow实现卷积神经网络
May 24 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
Python中Proxypool库的安装与配置
Oct 19 Python
python全栈知识点总结
Jul 01 Python
关于Python-faker的函数效果一览
Nov 28 Python
python词云库wordCloud使用方法详解(解决中文乱码)
Feb 17 Python
如何将PySpark导入Python的放实现(2种)
Apr 26 Python
DRF使用simple JWT身份验证的实现
Jan 14 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
python中出现invalid syntax报错的几种原因分析
Feb 12 Python
Python之matplotlib绘制饼图
Python线程池与GIL全局锁实现抽奖小案例
Python之Matplotlib绘制热力图和面积图
Python matplotlib绘制雷达图
Python万能模板案例之matplotlib绘制甘特图
Python万能模板案例之matplotlib绘制直方图的基本配置
python创建字典及相关管理操作
You might like
提问的智慧(2)
2006/10/09 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
smarty内置函数section的用法
2015/01/22 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
js 设置选中行的样式的实现代码
2010/05/24 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
python实现将内容分行输出
2015/11/05 Python
python+opencv实现动态物体识别
2018/01/09 Python
使用Python读取大文件的方法
2018/02/11 Python
python定向爬取淘宝商品价格
2018/02/27 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
详解python 内存优化
2020/08/17 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
秋天的怀念教学反思
2014/04/28 职场文书
承诺书样本
2014/08/30 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
企业党建工作总结2015
2015/05/26 职场文书
高中地理教学反思
2016/02/19 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
JavaScript的function函数详细介绍
2021/11/20 Javascript
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers