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抓取行政区划码的方法
Nov 28 Python
python flask 多对多表查询功能
Jun 25 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
python 函数中的内置函数及用法详解
Jul 02 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
python中的逆序遍历实例
Dec 25 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
Python装饰器的练习题
Nov 23 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存储过程调用实例代码
2013/02/03 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
Vue中props的使用详解
2018/06/15 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
Django框架中的对象列表视图使用示例
2015/07/21 Python
解决Python requests 报错方法集锦
2017/03/19 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
python删除服务器文件代码示例
2018/02/09 Python
python去除扩展名的实例讲解
2018/04/23 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
详解Python中的分支和循环结构
2020/02/11 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
销售工作岗位职责
2013/12/24 职场文书
微信营销策划方案
2014/02/24 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
六查六看剖析材料
2014/10/06 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
小学感恩节活动总结
2015/03/24 职场文书
2015暑假打工实践报告
2015/07/13 职场文书