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打开网页和暂停实例
Sep 30 Python
python遍历类中所有成员的方法
Mar 18 Python
Python进行数据提取的方法总结
Aug 22 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
python爬虫获取新浪新闻教学
Dec 23 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
Jan 04 Python
Python八皇后问题解答过程详解
Jul 29 Python
Python IDE环境之 新版Pycharm安装详细教程
Mar 05 Python
python数据类型强制转换实例详解
Jun 22 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 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+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
php递归实现无限分类的方法
2015/07/28 PHP
PHP递归创建多级目录
2015/11/05 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
js URL参数的拼接方法比较
2012/02/15 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
探索webpack模块及webpack3新特性
2017/09/18 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
Python模块搜索路径代码详解
2018/01/29 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
一年级家长会邀请函
2014/01/25 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
房产转让协议书
2014/04/11 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
小学安全工作总结2015
2015/05/18 职场文书
《雷雨》教学反思
2016/02/20 职场文书