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网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
Jun 09 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 Python
Python带动态参数功能的sqlite工具类
May 26 Python
利用python循环创建多个文件的方法
Oct 25 Python
Python实现DDos攻击实例详解
Feb 02 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
Mar 10 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
解决jupyter notebook启动后没有token的坑
Apr 24 Python
Python各协议下socket黏包问题原理
Apr 12 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
php adodb连接mssql解决乱码问题
2009/06/12 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
Javascript中的相等与不等运算
2010/04/25 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
node 文件上传接口的转发的实现
2019/09/23 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
Python处理CSV与List的转换方法
2018/04/19 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
如何现实servlet的单线程模式
2014/08/05 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
小学生自我鉴定
2013/10/12 职场文书
中国梦的演讲稿
2014/01/08 职场文书
就业表自我评价分享
2014/02/06 职场文书
投资合作协议书
2014/04/17 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
被告答辩状范文
2015/05/22 职场文书
雷锋的故事观后感
2015/06/10 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL