Matplotlib基本参数设置

Matplotlib基本参数设置

1. 添加图标题,坐标轴标题,图例

添加图标题有plt.xlabel()和axes.set_xlabel()方法,添加坐标轴标题和图例也基本类似,其中注意的是绝大多数的 plt 函数都可以直接转换成 axes 方法(例如 plt.plot() → axes.plot()、 plt.legend() → axes.legend() 等),但是并非所有的命令都可以这样用。尤其是用来设置坐标轴上下限、坐标轴标题和图形标题的函数,它们大都稍有差别。一些 MATLAB 风格的方法和面向对象方法的转换如下所示:

  • plt.xlabel() → axes.set_xlabel()
  • plt.ylabel() → axes.set_ylabel()
  • plt.xlim() → axes.set_xlim()
  • plt.ylim() → axes.set_ylim()
  • plt.title() → axes.set_title()
    绘制包含图标题、坐标轴标题以及图例的图形,举例如下:

(1)使用plt.xlabel()方法:
代码一:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 20) 
plt.xlabel("x")                  # 添加横轴名称
plt.ylabel("sin(x)")             # 添加纵轴名称
plt.title("A Sine Curve")        # 添加图形名称
plt.plot(x,np.sin(x))
plt.legend(["y = sin(x)"],loc=0) # 添加图例

结果:
在这里插入图片描述
(2)使用axes.set_xlabel() 方法
代码二:

import matplotlib.pyplot as plt
x = np.linspace(0, 10, 20) 
fig, axes = plt.subplots()
axes.set_xlabel('x label')   # 横轴名称
axes.set_ylabel('y label')   # 纵轴名称
axes.set_title('title')      # 图形名称

axes.plot(x, x**2)
axes.plot(x, x**3)
axes.legend(["y = x**2", "y = x**3"], loc=0)  # 图例

结果:
在这里插入图片描述
legend最常用的参数loc,用来设置图例的位置,其参数如下表:
在这里插入图片描述

2.添加坐标轴范围,画布网格

(1)使用plt.xlim()方法
代码一:

import matplotlib.pyplot as plt
import numpy as np
plt.xlim(-1,12)            # 设置x轴的范围
plt.ylim(-2,2)             # 设置y轴的范围
plt.plot(x,np.sin(x))

结果:
在这里插入图片描述
(2)使用 axes.set_xlim()方法
代码二:

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,5))
axes[0].plot(x, x**2, x, x**3, lw=2)
axes[0].grid(True)                        # 显示网格
axes[1].plot(x, x**2, x, x**3)          
axes[1].set_ylim([0, 60])                 # 设置y轴范围
axes[1].set_xlim([1, 5])                  # 设置x轴范围

结果:
在这里插入图片描述

3.添加图形标注

Matplotlib 中,文字标注的方法由 matplotlib.pyplot.text() 实现。最基本的样式为 matplotlib.pyplot.text(x, y, s),其中 x, y 用于标注位置定位,s 代表标注的字符串。
代码:

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots()

x_bar = [10, 20, 30, 40, 50]                                      # 柱形图横坐标
y_bar = [0.5, 0.6, 0.2, 0.7, 0.3]                                 # 柱形图纵坐标
bars = axes.bar(x_bar, y_bar, color='red', label=x_bar, width=3)  # 绘制柱形图
for i, rect in enumerate(bars):
    x_text = rect.get_x()                                         # 获取柱形图横坐标
    y_text = rect.get_height() + 0.01                             # 获取柱子的高度并增加 0.01
    plt.text(x_text, y_text, '%.1f' % y_bar[i])                   # 标注文字

结果:
在这里插入图片描述

4. 改变横坐标和纵坐标上的刻度(ticks)

xticks()函数原型:

xticks(ticks, [labels], **kwargs)

参数说明:
ticks:数组类型,用于设置X轴刻度间隔
[labels]:数组类型,用于设置每个间隔的显示标签
**kwargs:用于设置标签字体倾斜度和颜色等外观属性。

例如下图,X轴间隔2显示一个刻度,由ticks参数设置
X轴上的数字1、2、3、4、5就称为标签,具体显示内容由labels参数决定
原图如下:

代码:

import matplotlib.pyplot as plt
import numpy as np
x = [1,2,3,4,5]
y = [6,10,11,8,15]
plt.bar(x,y,width=0.5,align="center",color="r")

结果:
在这里插入图片描述
修改x轴的标签为1-5月的5个月份,y轴间隔为3的代码如下。
代码:

import matplotlib.pyplot as plt
import numpy as np
x = [1,2,3,4,5]
y = [6,10,11,8,15]
plt.xticks(x,["一月","二月","三月","四月","五月"],color='g',rotation=0 )#参数x控制X轴的间隔,第二个参数控制每个间隔显示的文本,后面两个参数控制标签的颜色和旋转角度
plt.yticks(np.arange(0,16,3))
plt.bar(x,y,width=0.5,align="center",color="r")

结果:
在这里插入图片描述

5.中文支持相关设置

(1)中文字体设置

  • font.family 字体的名称
  • SimHei 中文黑体
  • FangSong 中文仿宋
  • STSong 华文宋体
  • Kaiti 中文楷体
  • LiSu 中文隶书

代码如下:

mpl.rcParams["font.family"] = "SimHei"

(2)"-"(负号)特殊符号的相关设置

axes.unicode_minus 是否使用Unicode的负号,在支持中文显示状态下,需要设置为False。

代码如下:

mpl.rcParams["axes.unicode_minus"] = False

代码:

import matplotlib as mpl
import matplotlib.pyplot as plt

mpl.rcParams["font.family"] = "SimHei"    # 中文字体设置

mpl.rcParams["axes.unicode_minus"] = False  # "-"(负号)特殊符号设置

plt.plot([-3, -1], [-1, -10], "r--")
plt.title("中文支持相关设置")

结果:
在这里插入图片描述

6.定义图形样式

plt.plot()函数用于对图形参数进行设置

plt.plot(x, y, format_string, **kwargs) 

参数:

  • x:x轴数据,列表或数组,可选
  • y:y轴数据,列表或数组
  • format_string:控制曲线的格式字符串,可选,由颜色字符、风格字符和标记字符组成。
  • **kwargs:第二组或更多,(x,y,format_string)
颜色字符(color参数)说明颜色字符说明
'b ’蓝色’m‘洋红色magenta
‘g’绿色’y‘黄色
’r‘红色’k‘黑色
’c‘青绿色 cyan’w‘白色
‘#008000’RGB某颜色‘0.8’灰度值字符串
风格字符(linestyle参数)说明
‘-’实线
‘–’破折线
‘-.’点划线
‘:’虚线
标记字符(marker参数)说明标记字符说明标记字符说明
‘.’点标记‘1’下花三角标记‘h’竖六边形标记
‘,’像素标记(极小点)‘2’上花三角标记‘H’横六边形标记
‘o’实心圈标记‘3’左花三角标记‘+’十字标记
‘v’倒三角标记‘4’右花三角标记‘x’x标记
‘^’上三角标记‘s’实心方形标记‘D’菱形标记
‘>’右三角标记‘p’实心五角标记‘d’瘦菱形标记
‘<’左三角标记‘*’星形标记‘I’垂直线标记

常用参数

参数含义
alpha=设置线型的透明度,从 0.0 到 1.0
color=设置线型的颜色
fillstyle=设置线型的填充样式
linestyle=设置线型的样式
linewidth=设置线型的宽度
marker=设置标记点的样式

代码举例:

import matplotlib.pyplot as plt
plt.subplot(121)
plt.plot([6,2,9,13,-2],c="g",marker="v",ls="--")
plt.subplot(122)
plt.plot([-3,-1,5,8,12], [2,-6,10,6,9],c="r",marker="*",ls="-")

结果:
在这里插入图片描述

### Matplotlib 的最佳实践参数配置 Matplotlib 是一个功能强大的绘图库,其灵活性使得它可以适应各种需求。然而,在实际应用中,为了提高可读性和一致性,通常会遵循一些最佳实践来设置默认参数或全局配置。 #### 使用 `rcParams` 进行全局配置 Matplotlib 提供了一个名为 `rcParams` 的字典对象,用于存储全局样式选项。通过修改这些选项,可以统一整个脚本中的图表风格[^1]。下面是一个常见的最佳实践配置: ```python import matplotlib.pyplot as plt plt.rcParams.update({ 'figure.figsize': (8, 6), # 设置默认图形大小 'font.size': 12, # 字体大小 'axes.titlesize': 14, # 轴标题字体大小 'axes.labelsize': 12, # 坐标轴标签字体大小 'xtick.labelsize': 10, # X轴刻度标签字体大小 'ytick.labelsize': 10, # Y轴刻度标签字体大小 'lines.linewidth': 2, # 默认线条宽度 'grid.alpha': 0.75 # 网格透明度 }) ``` 上述代码片段定义了一些常用的全局参数,适用于大多数场景下的数据可视化任务。如果需要进一步定制化,可以根据具体需求调整其他属性。 #### 自定义主题颜色方案 除了基本的参数外,还可以自定义配色方案以增强视觉效果。例如,创建一个基于深色背景的主题: ```python from cycler import cycler dark_theme = { 'axes.facecolor': 'black', # 图表区域背景颜色 'figure.facecolor': 'black', # 整个画布的颜色 'text.color': 'white', # 文本颜色 'axes.edgecolor': 'white', # 边框线颜色 'xtick.color': 'white', # 刻度标记颜色 'ytick.color': 'white', 'axes.prop_cycle': cycler(color=['#FFC107', '#E91E63', '#2196F3', '#4CAF50']) # 颜色循环列表 } plt.style.use(dark_theme) ``` 此部分展示了如何利用 `cycler` 库实现色彩轮替机制,并结合特定 RGB 值构建吸引人的调色板。 #### 导入预设样式模板 对于不想手动编写复杂样式的开发者来说,可以直接加载内置或者第三方提供的现成模板文件(`.mplstyle`)。比如激活 seaborn 样式只需简单一句命令即可完成切换操作: ```python plt.style.use('seaborn') ``` 更多可用的选择可通过如下方式查看全部支持的名字列表: ```python print(plt.style.available) ``` 以上方法均有助于快速提升图像质量并保持团队间的一致性标准。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值