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使用rabbitmq实现网络爬虫示例
Feb 20 Python
python实现给字典添加条目的方法
Sep 25 Python
Python 正则表达式的高级用法
Dec 04 Python
Python 的类、继承和多态详解
Jul 16 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
Django框架的使用教程路由请求响应的方法
Jul 03 Python
浅谈Python反射 & 单例模式
Mar 21 Python
使用pytorch完成kaggle猫狗图像识别方式
Jan 10 Python
Python 实现简单的客户端认证
Jul 29 Python
python实现简单的五子棋游戏
Sep 01 Python
如何基于python实现年会抽奖工具
Oct 20 Python
python 实现表情识别
Nov 21 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
2009/06/29 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
python学习笔记:字典的使用示例详解
2014/06/13 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
python中可以声明变量类型吗
2020/06/18 Python
小结Python的反射机制
2020/09/28 Python
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
个人现实表现材料
2014/02/04 职场文书
意向协议书范本
2014/04/23 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
库房管理员岗位职责
2015/02/12 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
跑出一片天观后感
2015/06/08 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android