Python Matplotlib绘图常规设置指南

Leo
Leo
发布时间:2026-10-13| 2人浏览过
原创

本文详细介绍Python中Matplotlib库的常规绘图设置方法。涵盖plt.style.use()整体风格、mpl.rcParams()坐标轴与标题字体控制、mpl.rc()线条样式、fontdict()字体参数以及plt.setp()属性设置。通过具体代码示例,展示如何调整坐标轴颜色、大小、线条粗细及旋转角度,提升图表可读性与美观度。

Matplotlib绘图常规设置概述

Python绘图库虽然广为人知,但许多用户对其常规美化设置并不熟悉。实际上,掌握坐标轴字体大小与颜色、标题样式、线条粗细与颜色以及整体图片风格等设置,能显著提升图表的视觉效果。

接下来将具体介绍Matplotlib中常用的常规设置方法。

主要总结以下几类常用函数:

整体风格设置:plt.style.use()

plt.style.use()函数用于设置图片的整体风格。通过plt.style.available可以查看当前可用的所有主题列表。


import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib as mpl
print plt.style.availabel

这里选取两个主题进行演示。


plt.style.use("fivethirtyeight")
data = np.random.randn(50)
plt.scatter(range(50), data)


with plt.style.context(('dark_background')):
  plt.plot(np.sin(np.linspace(0, 2 * np.pi)), 'r-o') # "r-o"表示红色的点用线连接起来。
plt.show()

坐标轴与标题设置:mpl.rcParams()

mpl.rcParams()函数可用于设置坐标轴及标题的字体大小、颜色和宽度等属性。同时,使用mpl.rcParams.keys()可以查看当前所有可用的设置项。


mpl.rcParams['xtick.labelsize'] = 16
mpl.rcParams["ytick.color"] = 'b'
plt.plot(range(50), data, 'g^')
plt.show()

上图通过rcParams()函数设置了y轴的字体颜色为蓝色,x轴的字体大小为16。此外,将数据点的标记(marker)设置为三角形,颜色调整为绿色。

线条属性设置:mpl.rc()与fontdict()

mpl.rc()函数主要用于设置线条的粗细、风格(如虚线、实线)和颜色等属性。

mpl.rc('lines', linewidth=4, color='r', linestyle='-.') plt.plot(data)

fontdict()函数也能实现类似的字体设置功能。


font = {'family' : 'monospace',
    'weight' : 'bold',
    'size'  : 'larger',
    'color' : "r"
    }
plt.scatter(range(50), data)
plt.xlabel("number", fontdict=font)

fontdict字典中主要包含以下几类键值:

font.family:共有5种设置选项,分别为serif、sans-serif、cursive、antasy和monospace。

font.style:包含3种设置,分别为normal、italic和oblique。

font.variant:有2种设置,分别为normal和small-caps。

font.weight:包含4种设置,分别为normal、bold、bolder和lighter。

font.stretch:共有13种设置选项。

具体包括ultra-condensed、extra-condensed、condensed、semi-condensed、normal、semi-expanded、expanded、extra-expanded、ultra-expanded、wider和narrower。font.size的默认值为10pt。

高级属性设置:plt.setp()与综合示例

plt.setp()函数同样可以设置线条的粗细和颜色,还能调整坐标轴的方向和位置。

例如:

setp(lines, 'linewidth', 2, 'color', 'r')

参考帮助文档中的一个完整示例:


import numpy as np
import matplotlib.pyplot as plt
data = {'Barton LLC': 109438.50,
    'Frami, Hills and Schmidt': 103569.59,
    'Fritsch, Russel and Anderson': 112214.71,
    'Jerde-Hilpert': 112591.43,
    'Keeling LLC': 100934.30,
    'Koepp Ltd': 103660.54,
    'Kulas Inc': 137351.96,
    'Trantow-Barrows': 123381.38,
    'White-Trantow': 135841.99,
    'Will LLC': 104437.60}
group_data = list(data.values())
group_names = list(data.keys())
group_mean = np.mean(group_data)
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
    title='Company Revenue')

可以看到,x轴坐标标签已斜向旋转45°,使整个图片更加美观。为了进一步分析数据,进行以下操作:


def currency(x, pos):
  """The two args are the value and tick position"""
  if x >= 1e6:
    s = '${:1.1f}M'.format(x*1e-6)
  else:
    s = '${:1.0f}K'.format(x*1e-3)
  return s
formatter = FuncFormatter(currency)
fig, ax = plt.subplots(figsize=(6, 8))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
 
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
    title='Company Revenue')
ax.xaxis.set_major_formatter(formatter)


fig, ax = plt.subplots(figsize=(8, 8))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
 
# 以所有收益的平均值画一条垂直线,看哪些公司是超越平均收益的
ax.axvline(group_mean, ls='--', color='r')
 
# 标注新成立的公司
for group in [3, 5, 8]:
  ax.text(145000, group, "New Company", fontsize=10,
      verticalalignment="center")
 
# 将标题移动一点,与图片保持一点距离。
ax.title.set(y=1.05)
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
    title='Company Revenue')
ax.xaxis.set_major_formatter(formatter)
ax.set_xticks([0, 25e3, 50e3, 75e3, 100e3, 125e3])
plt.show()

经过上述调整,可以直观地识别出新成立的公司,以及收益超越平均水平的企业。这对后续的数据分析和统计工作具有重要帮助。

以上关于Python绘图常规设置的内容分享完毕,希望能为大家提供参考,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。