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调用cmd复制文件代码分享
Dec 27 Python
python中enumerate函数用法实例分析
May 20 Python
Python变量和数据类型详解
Feb 15 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
pandas修改DataFrame列名的实现方法
Feb 22 Python
通过python改变图片特定区域的颜色详解
Jul 15 Python
django之自定义软删除Model的方法
Aug 14 Python
Python logging设置和logger解析
Aug 28 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 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中foreach循环中使用引用要注意的地方
2011/01/02 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
python从ftp下载数据保存实例
2013/11/20 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
Django缓存系统实现过程解析
2019/08/02 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
浅谈python锁与死锁问题
2020/08/14 Python
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
国际象棋商店:The Chess Store
2018/07/09 全球购物
募捐倡议书
2014/04/14 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
给公司的建议书范文
2014/05/13 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
撤诉状格式范本
2015/05/19 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
python中if和elif的区别介绍
2021/11/07 Python
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android