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 相关文章推荐
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
利用aardio给python编写图形界面
Aug 21 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
Python实现线性插值和三次样条插值的示例代码
Nov 13 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
使用keras根据层名称来初始化网络
May 21 Python
keras的ImageDataGenerator和flow()的用法说明
Jul 03 Python
详解python中的闭包
Sep 07 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
Python使用永中文档转换服务
May 06 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常用函数的用法详解
2013/05/10 PHP
php对数组排序的简单实例
2013/12/25 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python中的多重继承实例讲解
2014/09/28 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
浅析Python 条件控制语句
2020/07/15 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
C语言中break与continue的区别
2012/07/12 面试题
高级护理专业毕业生推荐信
2013/12/25 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
合伙购房协议样本
2014/10/06 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
2015元旦标语横幅
2014/12/09 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
全国助残日活动总结
2015/05/11 职场文书
国庆节新闻稿
2015/07/17 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书