Python绘制分类图的方法

 更新时间:2021年04月19日 14:12:31   作者:江北20190411  
这篇文章主要为大家详细介绍了Python绘制分类图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言

遥感影像分类图一般为特定数值对应一类地物,用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 模拟员工信息数据库操作的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • python之当你发现QTimer不能用时的解决方法

    python之当你发现QTimer不能用时的解决方法

    今天小编就为大家分享一篇python之当你发现QTimer不能用时的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python模块对Redis数据库的连接与使用讲解

    Python模块对Redis数据库的连接与使用讲解

    这篇文章主要介绍了Python模块对Redis数据库的连接与使用,通过实例代码给大家介绍了Python连接Redis数据库方法,Python使用连接池连接Redis数据库方法,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • 实现ECharts双Y轴左右刻度线一致的例子

    实现ECharts双Y轴左右刻度线一致的例子

    这篇文章主要介绍了实现ECharts双Y轴左右刻度线一致的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python切片操作方法的实例总结

    python切片操作方法的实例总结

    所谓切片就是在某个数据里提取需要的部分,提取到的是某个索引下的值,或者索引区间的值,下面这篇文章主要给大家介绍了关于python切片操作方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • python 实现图片上传接口开发 并生成可以访问的图片url

    python 实现图片上传接口开发 并生成可以访问的图片url

    今天小编就为大家分享一篇python 实现图片上传接口开发 并生成可以访问的图片url,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 一文搞懂Python中pandas透视表pivot_table功能

    一文搞懂Python中pandas透视表pivot_table功能

    透视表是一种可以对数据动态排布并且分类汇总的表格格式。或许大多数人都在Excel使用过数据透视表,也体会到它的强大功能,而在pandas中它被称作pivot_table,今天通过本文给大家介绍Python中pandas透视表pivot_table功能,感兴趣的朋友一起看看吧
    2021-11-11
  • Django使用celery异步发送短信验证码代码示例

    Django使用celery异步发送短信验证码代码示例

    这篇文章主要介绍了Django中如何使用celery异步发送短信验证码的代码示例,有需要的朋友可以借鉴参考下,希望可以对大家有所帮助
    2021-09-09
  • python 如何使用find和find_all爬虫、找文本的实现

    python 如何使用find和find_all爬虫、找文本的实现

    这篇文章主要介绍了python 如何使用find和find_all,爬虫、找文本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Python日期时间对象转换为字符串的实例

    Python日期时间对象转换为字符串的实例

    今天小编就为大家分享一篇Python日期时间对象转换为字符串的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06

最新评论