绘制局部放大图
1.导入数据库
import seaborn as sns
sns.set_style('whitegrid')
import numpy as np
import matplotlib as mpl
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
Seaborn库简介:
Seaborn是一个基于 Python 的数据可视化库,它建立在 Matplotlib 之上,提供了一种高级的接口,用于制作统计图形。Seaborn 旨在使绘制复杂的图表变得更简单,同时保持对图表细节的控制能力,非常适合用于数据探索和分析。以下是 Seaborn 的一些主要特性:
美观的默认主题:Seaborn 拥有一套美观的默认图形样式,可以快速生成看起来很专业的图表。
支持多种图表类型:Seaborn 支持多种图表类型,包括但不限于散点图、条形图、箱线图、小提琴图、热力图、联合图等。
数据集集成:Seaborn 内置了几个可以直接用于绘图的数据集,方便用户快速开始绘图。
灵活的图表定制:Seaborn 允许用户定制图表的几乎每个方面,包括颜色、尺寸、标签等。
交互式图表:Seaborn 可以与 Jupyter Notebook 等工具集成,生成交互式图表。
Facet Grids:Seaborn 提供了一种称为 Facet Grids 的功能,允许用户在一个网格中绘制多个图表,以展示数据的不同子集。
颜色映射:Seaborn 提供了一套丰富的颜色映射系统,可以用于创建美观且信息丰富的图表。
调用方式:import seaborn as sns >> sns.set_style('whitegrid')
2.设置图纸参数
fig,ax = plt.subplots(figsize = (10,6))
x = np.linspace(-0.50,1.,1000)
3.外部图形
ax.plot(x,x**2)
ax.plot(x,np.sin(x))
ax.set(xlim = (-0.5,1.0),ylim = (-0.5,1.2))
fig.tight_layout()
4.内部图形
inner_ax = fig.add_axes([0.2,0.55,0.35,0.35])
inner_ax.plot(x,x**2)
inner_ax.plot(x,np.sin(x))
inner_ax.set(title = '放大',xlim = (-0.2,0.2),ylim = (-0.01,0.02),
yticks = [-0.01,0,0.01,0.02],xticks = [-0.1,0,0.1])
ax.set_title('图形内绘图',fontsize = 20)
plt.show()
mpl.rcParams.update(mpl.rcParamsDefault)
输出结果展示:
fig.add_axes()函数说明:
在 Matplotlib 中,fig.add_axes() 是一个方法,用于在给定的图形(Figure)上添加一个或多个轴(Axes)。这个方法允许你指定轴的位置和大小,以下是 fig.add_axes() 方法的一些关键参数:
- rect: 一个四元组 (left, bottom, width, height),表示轴在图形中的相对位置和大小。这些值通常是在 0 到 1 之间的比例,表示距离图形左下角的位置和轴的宽度与高度。
- projection: 指定轴的类型,例如 '3d' 表示三维轴。
mpl.rcParams.update()函数简介:
在Matplotlib中,mpl.rcParams.update() 是一个用于更新全局配置设置的方法。Matplotlib 使用一个名为 rcParams 的字典来存储配置参数,这些参数控制着图表的各种外观和行为。应用场景如下:
统一图表风格:在生成多个图表时,使用 rcParams.update() 可以确保所有图表具有一致的风格和外观。
临时更改设置:在绘图脚本中,你可以临时更改某些设置,以查看不同配置对图表外观的影响。
配置文件:你可以将常用的配置参数保存在一个文件中,然后使用 rcParams.update() 从该文件加载配置。
基本用法:
# 更新配置参数
mpl.rcParams.update({
'font.size': 16,
'axes.titlesize': 'large',
'legend.fontsize': 'medium',
'xtick.labelsize': 'large',
'ytick.labelsize': 'large',
'lines.linewidth': 2,
'figure.figsize': (10, 5),
'savefig.dpi': 100,
})
# 参数说明
'font.size': 设置默认字体大小。
'axes.titlesize': 设置轴标题的字体大小。
'legend.fontsize': 设置图例中字体的大小。
'xtick.labelsize': 设置x轴刻度标签的字体大小。
'ytick.labelsize': 设置y轴刻度标签的字体大小。
'lines.linewidth': 设置线条的默认宽度。
'figure.figsize': 设置图形的默认大小(宽度和高度,单位为英寸)。
'savefig.dpi': 设置保存图形时的分辨率。
完整代码
#(1)导入数据库
import seaborn as sns
sns.set_style('whitegrid')
import numpy as np
import matplotlib as mpl
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#(2)设置图纸
fig,ax = plt.subplots(figsize = (10,6))
x = np.linspace(-0.50,1.,1000)
# (3)外部图形
ax.plot(x,x**2)
ax.plot(x,np.sin(x))
ax.set(xlim = (-0.5,1.0),ylim = (-0.5,1.2))
fig.tight_layout()
# (3)内部图形
inner_ax = fig.add_axes([0.2,0.55,0.35,0.35])
inner_ax.plot(x,x**2)
inner_ax.plot(x,np.sin(x))
inner_ax.set(title = '放大',xlim = (-0.2,0.2),ylim = (-0.01,0.02),
yticks = [-0.01,0,0.01,0.02],xticks = [-0.1,0,0.1])
ax.set_title('图形内绘图',fontsize = 20)
plt.show()
mpl.rcParams.update(mpl.rcParamsDefault)
说明:该案例来源于《Python数据分析》