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标准日志模块logging的使用方法
Nov 01 Python
Python 自动补全(vim)
Nov 30 Python
Python 序列的方法总结
Oct 18 Python
Python 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
Python实现针对含中文字符串的截取功能示例
Sep 22 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
python利用tkinter实现图片格式转换的示例
Sep 28 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 Python
PyCharm 光标变成黑块的解决方式
Feb 06 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 pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
Javascript的闭包
2009/12/31 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
Python实现单词拼写检查
2015/04/25 Python
python去除所有html标签的方法
2015/05/05 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
Python如何发布程序的详细教程
2018/10/09 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
安装python及pycharm的教程图解
2019/10/10 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
高级销售员求职信
2013/10/25 职场文书
大学生表扬信范文
2014/01/09 职场文书
物流创业计划书
2014/02/01 职场文书
小学重阳节活动总结
2015/03/24 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
繁星春水读书笔记
2015/06/30 职场文书
财务人员入职担保书
2015/09/22 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python