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对指定目录下文件进行批量重命名的方法
Apr 18 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
对python的文件内注释 help注释方法
May 23 Python
python批量查询、汉字去重处理CSV文件
May 31 Python
selenium+python环境配置教程详解
May 28 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 Python
Python import模块的缓存问题解决方案
Jun 02 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更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
解放web程序员的输入验证
2006/10/06 Javascript
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
python梯度下降算法的实现
2020/02/24 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
python开发前景如何
2020/06/11 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
小学绿色学校申报材料
2014/08/23 职场文书
离婚协议书标准格式
2014/10/04 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
幼儿园个人总结
2015/02/28 职场文书
2015党建工作简报
2015/07/21 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL