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正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 Python
python发送伪造的arp请求
Jan 09 Python
Python迭代器和生成器介绍
Mar 06 Python
浅谈python新手中常见的疑惑及解答
Jun 14 Python
你应该知道的python列表去重方法
Jan 17 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
基于python的BP神经网络及异或实现过程解析
Sep 30 Python
python 实现单通道转3通道
Dec 03 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
浅析Python3 pip换源问题
Jan 06 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 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
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
2013/12/04 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
vue - props 声明数组和对象操作
2020/07/30 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
python 简易计算器程序,代码就几行
2009/08/29 Python
Django自定义用户认证示例详解
2018/03/14 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
python实现控制COM口的示例
2019/07/03 Python
Python实现微信小程序支付功能
2019/07/25 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python求质数列表的例子
2019/11/24 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
教师个人师德总结
2015/02/06 职场文书
五一劳动节活动总结
2015/02/09 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书