matplotlib绘制折线图的基本配置(万能模板案例)
作者:王小王-123 发布时间:2022-09-06 18:06:17
标签:matplotlib,折线图
前面我们已经构造了一种图形可视化的模板了,下面我们直接使用这个模板进行增添和修改,进一步的改善图形的外观。
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()
设置好基本的图形之后,我们就可以向上面添加一些数据了
(图例放置位置)
"""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)
查看全局参数
# 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)
改变字体
# 字体字典
font_dict = {'fontsize': 10, 'fontweight': 'bold', 'color': 'grey'}
# 中文标题, 默认的字体不支持中文
plt.title("三角函数:正弦和余弦",loc='center',y=0.9, fontdict=font_dict)
添加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'])
折线图绘制万能模板
# 处理数据
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)
来源:https://wxw-123.blog.csdn.net/article/details/123745340


猜你喜欢
- 先介绍一下SQLSERVER中的存储类对象,哈哈,先介绍一下概念嘛,让新手老手都有一个认知SQLSERVER Management Stud
- 一、split()函数的简单应用1.join()函数Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。j
- 一,docx模块Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把
- 以前大家谈了很多有关打开数据库连接安全的问题,现在我再提出一种思路:使用activex dll来保护你的代码。(既可以不用为使用共享的加密软
- UI自动化测试过程中,可能会出现因测试环境不稳定、网络慢等情况,如果不做任何处理的话,会出现无法定位到特定元素而报错,导致自动化测试无法顺利
- PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性,鉴于目前最新版 PyCharm 使用教程较少,为了节约时间,来介绍下p
- try: 语句测试代码块的错误,一般把可能会出错的代码放到这里 catch: 只有try里面的代码块发生错误时,才会执行这里的代
- 使用 Python 内建的defaultdict 方法可以轻松定义一个树的数据结构。简单的说树也可以是一个字典数据结构 def t
- Pattern.split方法详解/** * 测试Pattern.split方法 */ @Test public void testPatt
- 以下代码涉及 Vue 2.0 及 ES6 语法。目标纯 javascrpit 实现,兼容ie9及以上浏览器,在本地做好文件格式、长宽、大小的
- 代码如下:< % Set fso=Server.CreateObject("Scripting
- 概要:本文主要描述XHTML中相对定位和绝对定位各自的本质、用法、区别和两者之间的关系。以及使用CSS的Left、Right、Top、Bot
- python对csv文件追加写入列,具体内容如下所示:原始数据[外链图片转存失败(img-zQSQWAyQ-1563597916666)(C
- 手动备份1)cmd控制台:mysqldump -uroot -proot 数据库名 [表名1,表名2...] > 文件路径比如:把 d
- 问题描述输入样例:Only the 11 CAPItal LeTtERS are replaced输出样例:Only the 11 XZKI
- 删除重复记录,将TABLE_NAME中的不重复记录保存到#TABLE_NAME中 select distinct *&n
- 大家都知道在Dreamwerver中可以很方便地实现记录集的分页显示,但是生成的代码的确很庞大,影响了网页的显示速度,看起来条理也不是很清晰
- 写一个学生管理系统,最好用python。我都没学过python呢,只好开始临时抱佛脚,再到网上找找有没有例子看看,下面是我参照另一个博主写的
- 本文介绍了一种将英文字符首个字母串转换为大写的asp代码,当然这个功能可能英文网站比较有用。转换大写功能英文介绍:Code Title: P
- 这里介绍笔者在学习wordcloud库时安装过程中所遇到的问题和解决方案1.在Pycharm中安装wordcloud出现的问题如下图所示2.