【数据分析与可视化】Matplotlib中动态rc参数设置详解与实战(图文解释 附源码)

简介: 【数据分析与可视化】Matplotlib中动态rc参数设置详解与实战(图文解释 附源码)

需要源码和PPT请点赞关注收藏后评论区留言私信~~~

设置pyplot的动态rc参数

pyplot使用rc配置文件来自定义图形的各种默认属性,被称为rc配置或rc参数

在pyplot中几乎所有的默认属性都是可以控制的,例如视图窗口大小以及每英寸点数、线条宽度、颜色和样式、坐标轴、坐标和网格属性、文本、字体等

两种方式可以设置参数,即全局参数定制和rc设置方法。 查看matplotlib的rc参数:   import matplotlib as plt       print(plt.rc_params())

1.使用参数字典

参数众多 常用参数:

Axes:设置坐标轴边界、颜色、坐标 刻度值大小和网格的显示;

Figure:设置边界颜色、图形大小和子区;

Font:设置字号、字体和样式;

Grid:设置网格颜色和线型;

Legend:设置图例和其中的文本显示;

Lines:设置线条颜色、宽度、线型等;

Savefig:对保存图像进行单独设置;

Xtick和ytick:X、Y轴的主刻度和次刻度设置颜色、大小、方向和标签大小。

全局参数定制

import matplotlib as plt 
       print(plt.matplotlib_fname())  
       #显示当前用户的配置文件目录

查找到当前用户的配置文件目录,然后用编辑器打  开,修改matplotlibrc文件,即可修改配置参数

2. 线条的常用rc参数名称、解释与取值

常用线条类型解释

需要注意的是,由于默认的Pyplot字体并不支持中文字符的显示,因此需要通过设置font.sans-serif参数改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴中的部分字符无法显示,因此需要同时更改axes.unicode_minus参数

添加以下两行代码即可在matplotlib中显示中文

plt.rcParams['font.family'] = ['SimHei'] #用来显示中文标签
plt.rcParams['axes.unicode_minus'] = False  #用来正常显示负号

除了设置线条和字体的rc参数外,还有设置文本、箱线图、坐标轴、刻度、图例、标记、图片、图像保存等rc参数

rc参数设置示例1

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib
%matplotlib inline
fig ,axes = plt.subplots()
#配置中文显示
plt.rcParams['font.family'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False  
def f(t):
    return np.cos(2*np.pi*t)
x1 = np.arange(0.0,4.0,0.5)
x2 = np.arange(0.0,4.0,0.01)
plt.figure(1)
plt.subplot(2,2,1)
plt.plot(x1,f(x1),'bo',x2,f(x2),'k')
plt.title('子图1')
plt.subplot(2,2,2)
plt.plot(np.cos(2*np.pi*x2),'r--')
plt.title('子图2')
plt.show()

rc参数设置示例2

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'o',label = 'one')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = '+',label = 'two')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'v',label = 'three')
ax.legend(loc = 'best')

set_xticks设置刻度

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'o',label = 'one')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = '+',label = 'two')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'v',label = 'three')
ax.set_xticks([0,5,10,15,20,25,30,35])
ax.legend(loc = 'best')

用set_xticklabels改变刻度

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'o',label = 'one')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = '+',label = 'two')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'v',label = 'three')
ax.set_xticklabels(['x0','x1','x2','x3','x4','x5'],rotation = 30,fontsize = 'large')
ax.legend(loc = 'best')

其中rotation参数表示X坐标标签的旋转角度,fontsize为字号

3 绘图的填充

(1)调用函数fill_between() 实现曲线下面部分的填充

x:第一个参数表示覆盖的区域, x,表示整个x都覆盖

0:表示覆盖的下限

y:表示覆盖的上限是y这个曲线

facecolor:覆盖区域的颜色

alpha:覆盖区域的透明度[0,1],其值越大,表示越不透明

x = np.linspace(0,1,500)
y = np.sin(3*np.pi*x)*np.exp(-4*x)
fig,ax = plt.subplots()
plt.plot(x,y)
plt.fill_between(x, 0, y, facecolor = 'green', alpha = 0.3)

(2)部分区域的填充

plt.fill_between(x[15:300], 0, 0.4, facecolor='green', alpha=0.3)

(3)两条曲线之间的区域填充

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,1,500)
y1=np.sin(3*np.pi*x)*np.exp(-4*x)
y2 = y1 + 0.2
plt.plot(x, y1,'b')
plt.plot(x, y2, 'r')
plt.fill_between(x, y1, y2, facecolor='green', alpha=0.3)
plt.show()

(4)利用fill进行绘图的填充:

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,1,500)
y=np.sin(3*np.pi*x)*np.exp(-4*x)
fig,ax=plt.subplots()
ax.fill(x,y)
plt.show()

4 绘图注释

绘图时有时需要在图表中加文本注解 这时可以通过text函数在指定的位置(x,y)加入文本注解; 通过annotate()在指定位置实现指向型注释

Matplotlib对LaTeX有一定的支持,在Matplotlib中,可以使用LaTeX的命令来编辑公式,只需要在字符串前面加一个r即可

1 指向型注释annotate() 2. 无指向型注释text()

示例如下

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#配置中文显示
plt.rcParams['font.family'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False  
x=np.arange(-10,11,1)
y=x*x
plt.plot(x,y)
plt.title('这是一个标题示例')
plt.text(-2.5,30,'funciton y=x*x')
plt.show()
plt.annotate('这是一个示例',xy=(0,1), xytext=(-2,22),arrowprops={'headwidth':10,'facecolor':'r'})

如在柱状图上加入文本数字,可以清楚地显示每个类别的数量。如6个城市8月份的日均最高气温

plt.rcParams['font.family'] = ['SimHei']
data = [25,30,32,34,34,23]
label = ['青海','兰州','北京','上海','广州','拉萨']
plt.xticks(range(len( data)),label)
plt.xlabel('城市')
plt.ylabel('温度')
plt.title('六城市8月份日均最高气温')
plt.bar(range(len( data)),data)
for x,y in zip(range(len(data)),data):
    plt.text(x,y,y,ha = 'center',va = 'bottom')
plt.show()

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
4月前
|
机器学习/深度学习 监控 数据可视化
127_训练可视化:曲线分析工具 - 使用Matplotlib诊断过拟合的独特信号与深度训练状态解析
在2025年的LLM训练环境中,随着模型规模和复杂度的指数级增长,训练过程的可视化已经从简单的性能监控工具演变为模型健康状态的诊断系统。训练可视化不仅仅是绘制几条曲线,而是构建一个完整的训练神经系统,能够实时捕捉训练动态、预测潜在问题、优化训练策略,并最终确保模型达到最佳性能。
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
359 1
|
Linux Python Windows
Matplotlib 中设置自定义中文字体的正确姿势
【11月更文挑战第16天】Matplotlib 默认不支持中文字体显示,需手动配置。方法包括:1) 修改全局字体设置,适用于整个脚本;2) 局部设置特定元素的字体;3) 使用系统字体名称,但可能因系统而异。通过这些方法可以有效解决中文乱码问题,确保图表中文本的正确显示。
1411 3
|
存储 数据可视化 数据挖掘
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
257 10
|
数据可视化 数据挖掘 Python
逆袭之路!Python数据分析新手如何快速掌握Matplotlib、Seaborn,让数据说话更响亮?
在数据驱动时代,掌握数据分析技能至关重要。对于Python新手而言,Matplotlib和Seaborn是数据可视化的两大利器。Matplotlib是最基本的可视化库,适合绘制基础图表;Seaborn则提供高层次接口,专注于统计图形和美观样式。建议先学Matplotlib再过渡到Seaborn。快速上手Matplotlib需多实践,示例代码展示了绘制折线图的方法。Seaborn特色功能包括分布图、关系图及分类数据可视化,并提供多种主题和颜色方案。两者结合可实现复杂数据可视化,先用Seaborn绘制统计图,再用Matplotlib进行细节调整。熟练掌握这两者,将显著提升你的数据分析能力。
218 4
|
数据可视化 数据挖掘 Python
惊呆了!Python数据分析师如何用Matplotlib、Seaborn秒变数据可视化大师?
在数据驱动时代,分析师们像侦探一样在数字海洋中寻找线索,揭示隐藏的故事。数据可视化则是他们的“魔法棒”,将复杂数据转化为直观图形。本文将带你探索Python数据分析师如何利用Matplotlib与Seaborn这两大神器,成为数据可视化大师。Matplotlib提供基础绘图功能,而Seaborn在此基础上增强了统计图表的绘制能力,两者结合使数据呈现更高效、美观。无论是折线图还是箱形图,这两个库都能助你一臂之力。
280 4
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
263 2
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【9月更文挑战第2天】数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
199 5
|
Python
pylustrator让Matplotlib参数修改更简单
pylustrator让Matplotlib参数修改更简单
162 7
|
数据可视化 Python
可视化 图形 matplotlib
可视化 图形 matplotlib