Python绘制分类图的方法

作者:江北20190411 时间:2021-08-10 04:09:13 

前言

遥感影像分类图一般为特定数值对应一类地物,用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绘制分类图的方法

来源:https://blog.csdn.net/tk20190411/article/details/115799071

标签:Python,分类图
0
投稿

猜你喜欢

  • 理清mysql外链的含义和命令

    2010-03-09 15:55:00
  • 自适应网页设计(Responsive Web Design)

    2012-05-02 10:49:07
  • Oracle 数据库 临时数据的处理方法

    2009-07-02 11:48:00
  • ASP动态包含文件的改进方法

    2009-01-05 12:22:00
  • 如何固定表格的标题行和标题列

    2007-09-20 13:03:00
  • Python使用Scrapy爬取妹子图

    2022-06-17 23:47:41
  • asp如何使用MsChart制图工具?

    2010-06-05 12:40:00
  • Go语言中的匿名结构体用法实例

    2023-07-07 11:10:21
  • Python GDAL库在Anaconda环境中的配置方法

    2021-09-13 18:51:22
  • Task List 管理任务JavaScript源码

    2010-01-22 15:43:00
  • keras分类模型中的输入数据与标签的维度实例

    2022-01-30 02:12:43
  • 用 JS 来控制 target 链接属性

    2007-10-08 12:59:00
  • Python装饰器代码详解

    2021-04-28 23:16:03
  • 详解python函数传参是传值还是传引用

    2023-11-13 13:25:58
  • SQL Server 2005 FOR XML嵌套查询使用详解

    2009-01-06 11:20:00
  • Python 开发工具PyCharm安装教程图文详解(新手必看)

    2023-04-25 05:01:08
  • python 解压pkl文件的方法

    2022-01-11 02:41:55
  • Python数据可视化编程通过Matplotlib创建散点图代码示例

    2022-01-04 17:23:34
  • python模块之paramiko实例代码

    2022-08-08 08:34:51
  • pip如何用pipdeptree查看包依赖

    2022-07-28 01:56:26
  • asp之家 网络编程 m.aspxhome.com