Python绘制分类图的方法


Posted in Python onApril 20, 2021

前言

遥感影像分类图一般为特定数值对应一类地物,用Python绘制时,主要在颜色的映射和对应的图例生成。

plt.matplotlib.colors.ListedColormap支持自定义颜色。matplotlib.patches mpatches对象可以生成一个矩形对象,控制其颜色和地物类型的颜色对应就可以生成地物分类的图例了。具体用法可以自行Google和百度。下面给出一个模拟地物分类数据的可视化例子。

代码

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)
data = np.random.randint(0, 3, size=(100,100))

colors = dict((
                (0, (0, 255, 0, 255)), # 前三位RGB,255代表256色
                (1, (0, 0, 255, 255)),  
                (2, (255, 255, 0, 255)),  
             ))

# 转换为0-1
for k in colors:
    v = colors[k]
    _v = [_v / 255.0 for _v in v]
    colors[k] = _v
    
index_colors = [colors[key] if key in colors else
                (255, 255, 255, 0) for key in range(0, len(colors))]

cmap = plt.matplotlib.colors.ListedColormap(index_colors, 'Classification', len(index_colors)) # n等于颜色表长度,否则被截断或被重复
# cmap = plt.matplotlib.colors.ListedColormap(['gray', 'orange', 'k'], 'Classification')

plt.rcParams['font.family'] = 'Arial'
plt.rcParams['font.size'] = 10
plt.rcParams['font.weight'] = 'bold'

fig, ax = plt.subplots(figsize=(4,3.5), dpi=300)
ax.imshow(data, cmap=cmap, interpolation='none')

# 绘制矩形的补丁, 用来生成图例,fig.add_artist()才会在图中显示出来 
import matplotlib.patches as mpatches 
rectangles = [mpatches.Rectangle((0, 0,), 1, 1, facecolor=index_colors[i]) 
              for i in range(len(index_colors))]

labels = ['forest',
          'water',
          'urban']

ax.legend(rectangles, labels,
          bbox_to_anchor=(1.4, 0.25), fancybox=True, frameon=False,)
# 取消刻度和标签显示
ax.tick_params(which='major', bottom=0, left=0)
ax.set_xticklabels('')
ax.set_yticklabels('')

效果图:

Python绘制分类图的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实例之wxpython中Frame使用方法
Jun 09 Python
Python引用(import)文件夹下的py文件的方法
Aug 26 Python
python获取本地计算机名字的方法
Apr 29 Python
日常整理python执行系统命令的常见方法(全)
Oct 22 Python
Python使用剪切板的方法
Jun 06 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
May 21 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
TensorFlow内存管理bfc算法实例
Feb 03 Python
基于python生成英文版词云图代码实例
May 16 Python
python获取百度热榜链接的实例方法
Aug 25 Python
基于python实现银行管理系统
Apr 20 Python
Pytest allure 命令行参数的使用
在pyCharm中下载第三方库的方法
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 #Python
深入理解python多线程编程
Apr 18 #Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 #Python
python批量更改目录名/文件名的方法
Apr 18 #Python
python解决12306登录验证码的实现
You might like
php中的时间显示
2007/01/18 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
php实现encode64编码类实例
2015/03/24 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
Javascript浅谈之this
2013/12/17 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Django组件content-type使用方法详解
2019/07/19 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
门诊挂号室室长岗位职责
2013/11/27 职场文书
临床医师专业个人自我评价
2014/01/08 职场文书
岳父生日宴会答谢词
2014/01/13 职场文书
机电一体化求职信
2014/03/10 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
教师节班会开场白
2015/06/01 职场文书
Python IO文件管理的具体使用
2022/03/20 Python