Python Matplotlib绘制渐变色扇形图与等高线图的实现方法

沿途有光
沿途有光
发布时间:2026-10-15| 4人浏览过
原创

本文介绍如何利用Python的Matplotlib库绘制渐变色扇形图和等高线图。通过调用cm模块及get_cmap()方法,可轻松实现rainbow、Paired等多种颜色地图的扇形图效果。同时,利用contourf()函数结合网格化数据与自定义高度函数,可生成专业的等高线可视化图表,适用于数据分析与展示场景。

渐变色扇形图

借助Python中Matplotlib库的plt.cm颜色地图模块,可以绘制出色彩渐变且视觉效果更佳的扇形图。这类图表常被称为彩虹图,但实际可选用的颜色地图(colormap)并不局限于此,例如Paired、autumn、rainbow、gray、spring以及Darks等均可作为配色方案。

Paired, autumn, rainbow, gray, spring, Darks。

下文将以rainbow(彩虹)颜色地图为例,展示相关代码实现,并呈现不同颜色样式下的图像效果。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm


# 字体使用楷体
plt.rcParams['font.sans-serif'] = ['STKAITI']
plt.rcParams['axes.unicode_minus'] = False
# 准备数据
shapes = ['安徽省', '云南省', '福建省', '河南省', '辽宁省',
          '重庆', '湖南省', '四川省', '北京', '上海', '广西壮族自治区', '河北省',
          '浙江省', '江苏省', '湖北省', '山东省', '广东省']
values = [842, 866, 1187, 1405, 1495, 1620, 1717,
          2313, 2378, 3070, 4332, 5841, 6482, 7785, 9358, 9818, 20254]
s = pd.Series(values, index=shapes)
labels = s.index
sizes = s.values


fig, ax = plt.subplots(figsize=(8, 8), facecolor='#cc00ff')
# rainbow
# 这里的len(sizes)是选择的颜色的个数,也是绘制饼图的数据个数,
# 此处参数通常写为np.arange(len(sizes))/len(sizes)形式,不用纠结太多关于其用法。
colors = cm.rainbow(np.arange(len(sizes))/len(sizes))
patches, texts, autotexts = ax.pie(sizes, labels=labels, autopct='%1.0f%%',
                                   startangle=180,
                                   colors=colors,
                                   pctdistance=0.8,
                                   textprops={'fontsize': 15, 'color': '#8B1A1A'},
                                   )

ax.set_title('部分地区某指标占比图', loc='center', fontsize=25, color='blue')
plt.show()

图像效果如下:

此外,还可以调用cm模块中的get_cmap()方法来实现相同功能。虽然该方法同样可行,但从便捷性角度来看,前文展示的直接指定颜色地图的方式更为简便。

以Paired颜色地图为例:

以颜色地图autumn为例:

以颜色地图gray为例:

以颜色地图spring为例:

等高线

绘制等高线图主要使用matplotlib.pyplot提供的contourf()方法。

该函数的语法结构如下:

plt.contourf(X, Y, f(X,Y))

其中,X和Y均为二维数组,通常由meshgrid()方法处理后的网格化数据构成。

f(X,Y)表示对X和Y应用f()函数计算得到的结果,该结果将作为对应坐标点的高度值。

以下是一段可供参考的示例代码:

import numpy as np
import matplotlib.pyplot as plt


# 计算x,y坐标对应的高度值
def fun(x, y):
    return (1-x/2+x**2+y**3) * np.exp(-x**2-y**2)


# 设置个背景色
plt.figure(facecolor='#66ff33')
n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
# 把x,y数据转换为二维数据(网格化)
X, Y = np.meshgrid(x, y)
# 填充等高线
plt.contourf(X, Y, fun(X, Y))

# 显示图表
plt.show()

其中fun(x, y)是用于计算高度的公式,用户可根据具体需求进行自定义调整。

绘制出的图像效果呈现如下:

到此这篇关于基于Python+Matplotlib绘制渐变色扇形图与等高线图的文章就介绍到这了,更多相关Python Matplotlib扇形图 等高线图内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

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

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 算法库。