Python Matplotlib绘制等高线图与渐变色扇形图


Posted in Python onApril 14, 2022

渐变色扇形图

使用 python - matplotlib 颜色地图plt.cm模块儿,来绘制出颜色渐变、更加好看的扇形图。也称彩虹图,但是也不限于彩虹图,可以选择的颜色地图(colormap)有:

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()

图像效果如下:

Python Matplotlib绘制等高线图与渐变色扇形图

除此之外,也可以调用cm模块的get_cmap()方法来完成。可以对该方法有所了解(小啾觉得上边展示的方法是更为方便的)。

以Paired颜色地图 为例:

Python Matplotlib绘制等高线图与渐变色扇形图

以颜色地图autumn为例:

Python Matplotlib绘制等高线图与渐变色扇形图

以颜色地图gray为例:

Python Matplotlib绘制等高线图与渐变色扇形图

以颜色地图spring为例:

Python Matplotlib绘制等高线图与渐变色扇形图

等高线

绘制等高线图使用的是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 相关文章推荐
实例Python处理XML文件的方法
Aug 31 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
Jun 05 Python
详解python中*号的用法
Oct 21 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
基于python连接oracle导并出数据文件
Apr 28 Python
Pytorch高阶OP操作where,gather原理
Apr 30 Python
如何真正的了解python装饰器
Aug 14 Python
python实现简单贪吃蛇游戏
Sep 29 Python
python playwright之元素定位示例详解
Jul 23 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 #Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 #Python
Python中time标准库的使用教程
Apr 13 #Python
Python函数对象与闭包函数
Apr 13 #Python
Python作用域和名称空间的详细介绍
Apr 13 #Python
Python获取字典中某个key的value
Apr 13 #Python
You might like
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
实习单位评语
2014/04/26 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
离婚协议书格式
2014/11/21 职场文书
教师个人培训总结
2015/02/11 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书