Python如何查看并打印matplotlib中所有的colormap(cmap)类型

目录
  • 查看并打印matplotlib中所有的colormap(cmap)类型
    • 方法一
    • 方法二
    • 方法三
  • matplotlib cmap取值问题
    • 直接定义一个类来获取cmap中各个颜色方便使用
    • 可视化官方提供的cmap

查看并打印matplotlib中所有的colormap(cmap)类型

代码如下:

方法一

import matplotlib.pyplot as plt

cmaps = sorted(m for m in plt.cm.datad if not m.endswith("_r"))
print(cmaps)

我们忽略以_r结尾的类型,因为它们都是类型后面不带有_r的反转版本(reversed version)。

所有的类型我们可以在matplotlib的源代码中找到:(如下图)

方法二

import matplotlib.pyplot as plt

cmap_list1 = plt.colormaps()
print(cmap_list1)

方法三

如果使用的是Pycharm编译器,那么可以在作图的时候简单的随便给定一个cmap的类型,如果给定的cmap类型是错误的,那么在编译器的错误提示信息中也会显示出所有的cmap类型。

比如,我们这里我们想要做一个高斯函数的曲面分布图,我们随意给cmap一个'aaa'的值,这时,我们可以在编译器提示窗口看到如下错误信息的输出。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
x, y = np.meshgrid(x, y)
w0 = 1
gaussian = np.exp(-((pow(x, 2) + pow(y, 2)) / pow(w0, 2)))

fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, y, gaussian, cmap='aaa')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
"""
错误提示信息:
ValueError: 'aaa' is not a valid value for name; supported values are 'Accent',
 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu',
 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens',
 'Greens_r', 'Greys', 'Greys_r', 'OrRd', 'OrRd_r', 'Oranges', 'Oranges_r',
 'PRGn', 'PRGn_r', 'Paired', 'Paired_r', 'Pastel1', 'Pastel1_r', 'Pastel2',
 'Pastel2_r', 'PiYG', 'PiYG_r', 'PuBu', 'PuBuGn', 'PuBuGn_r', 'PuBu_r', 'PuOr',
 'PuOr_r', 'PuRd', 'PuRd_r', 'Purples', 'Purples_r', 'RdBu', 'RdBu_r', 'RdGy',
 'RdGy_r', 'RdPu', 'RdPu_r', 'RdYlBu', 'RdYlBu_r', 'RdYlGn', 'RdYlGn_r', 'Reds',
 'Reds_r', 'Set1', 'Set1_r', 'Set2', 'Set2_r', 'Set3', 'Set3_r', 'Spectral',
 'Spectral_r', 'Wistia', 'Wistia_r', 'YlGn', 'YlGnBu', 'YlGnBu_r', 'YlGn_r',
 'YlOrBr', 'YlOrBr_r', 'YlOrRd', 'YlOrRd_r', 'afmhot', 'afmhot_r', 'autumn',
 'autumn_r', 'binary', 'binary_r', 'bone', 'bone_r', 'brg', 'brg_r', 'bwr',
 'bwr_r', 'cividis', 'cividis_r', 'cool', 'cool_r', 'coolwarm', 'coolwarm_r',
 'copper', 'copper_r', 'cubehelix', 'cubehelix_r', 'flag', 'flag_r','gist_earth',
 'gist_earth_r', 'gist_gray', 'gist_gray_r', 'gist_heat','gist_heat_r', 'gist_ncar',
 'gist_ncar_r', 'gist_rainbow', 'gist_rainbow_r','gist_stern', 'gist_stern_r',
 'gist_yarg', 'gist_yarg_r', 'gnuplot','gnuplot2', 'gnuplot2_r', 'gnuplot_r', 'gray',
 'gray_r', 'hot', 'hot_r', 'hsv', 'hsv_r', 'inferno', 'inferno_r', 'jet','jet_r',
 'magma', 'magma_r','nipy_spectral', 'nipy_spectral_r', 'ocean', 'ocean_r',
'pink', 'pink_r','plasma', 'plasma_r', 'prism', 'prism_r', 'rainbow', 'rainbow_r',
'seismic', 'seismic_r', 'spring', 'spring_r', 'summer', 'summer_r', 'tab10','tab10_r',
'tab20', 'tab20_r', 'tab20b', 'tab20b_r', 'tab20c', 'tab20c_r', 'terrain','terrain_r',
'turbo', 'turbo_r', 'twilight', 'twilight_r', 'twilight_shifted','twilight_shifted_r',
'viridis', 'viridis_r', 'winter', 'winter_r'
"""

matplotlib cmap取值问题

直接定义一个类来获取cmap中各个颜色方便使用

使用的话:mycolor = MyColor(‘Accent’); mycolor.get_color();# 每次就调用获取下一个cmap中的颜色。

class MyColor(object):
    def __init__(self, cmap_name):
        self.color_set  = plt.get_cmap(cmap_name).colors
        self.idx = 0
        self.color_len = len(self.color_set)

    def get_color(self):
        if self.idx == self.color_len - 1:
            self.idx = 0
        color = self.color_set[self.idx]
        self.idx += 1
        return color

可视化官方提供的cmap

比如查看:[‘Pastel1’, ‘Pastel2’, ‘Paired’, ‘Accent’, ‘Dark2’, ‘Set1’, ‘Set2’, ‘Set3’, ‘tab10’, ‘tab20’, ‘tab20b’, ‘tab20c’]

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt

cmaps = {}
gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))

def plot_color_gradients(category, cmap_list):
    # Create figure and adjust figure height to number of colormaps
    nrows = len(cmap_list)
    figh = 0.35 + 0.15 + (nrows + (nrows - 1) * 0.1) * 0.22
    fig, axs = plt.subplots(nrows=nrows + 1, figsize=(6.4, figh), dpi=100)
    fig.subplots_adjust(top=1 - 0.35 / figh, bottom=0.15 / figh,
                        left=0.2, right=0.99)
    axs[0].set_title(f'{category} colormaps', fontsize=14)

    for ax, name in zip(axs, cmap_list):
        ax.imshow(gradient, aspect='auto', cmap=plt.get_cmap(name))
        ax.text(-0.01, 0.5, name, va='center', ha='right', fontsize=10,
                transform=ax.transAxes)

    # Turn off *all* ticks & spines, not just the ones with colormaps.
    for ax in axs:
        ax.set_axis_off()

    # Save colormap list for later.
    cmaps[category] = cmap_list

plot_color_gradients('Qualitative',
                     ['Pastel1', 'Pastel2', 'Paired', 'Accent', 'Dark2',
                      'Set1', 'Set2', 'Set3', 'tab10', 'tab20', 'tab20b',
                      'tab20c'])

运行后:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python matplotlib的使用并自定义colormap的方法

    0.前言 添加colormap的对象是灰度图,可以变成热量图,从而更加明显的发现一些规律,适用于一些雷达图像等 from PIL import Image # 将彩色图片转换成黑白图片 im=Image.open("./pic.jpg").convert('L') # 保存图片 im.save("image.jpg") 1.从灰色图片中读取数据,转换成colormap图 import matplotlib.pyplot as plt import matplotli

  • 利用python中的matplotlib打印混淆矩阵实例

    前面说过混淆矩阵是我们在处理分类问题时,很重要的指标,那么如何更好的把混淆矩阵给打印出来呢,直接做表或者是前端可视化,小编曾经就尝试过用前端(D5)做出来,然后截图,显得不那么好看.. 代码: import itertools import matplotlib.pyplot as plt import numpy as np def plot_confusion_matrix(cm, classes, normalize=False, title='Confusion matrix', cma

  • 利用Python matplotlib绘制风能玫瑰图

    概述 在之前的风资源分析文章中,有提到过用widrose包来进行玫瑰图的绘制,目前的可视化绘图包有很多,但是最基础和底层的,本人认为还是matplotlib,有时候为了画1-2个图就去安装一个包,好麻烦,我就是个安装软件的渣渣,所以,推己及人,我也研究了一下,matplotlib画玫瑰图的方法,废话不多说,开始咯~~~ 风能玫瑰图 玫瑰图是气象科学专业统计图表,用来统计某个地区一段时期内风向.风速发生频率,又分为"风向玫瑰图"和"风速玫瑰图".本文中的玫瑰图是将风速

  • Python colormap库的安装和使用详情

    colormap库是Python中的一个对颜色进行处理的第三方库,常用于对RGB(red,green,blue三原色的缩写,真彩图像)颜色的转换,生成颜色图等. pypi文档地址:https://pypi.org/project/colormap/ 一.安装colormap pip install -i https://pypi.tuna.tsinghua.edu.cn/simple easydev pip install colormap colormap库依赖于easydev库,需要先安装e

  • Python如何查看并打印matplotlib中所有的colormap(cmap)类型

    目录 查看并打印matplotlib中所有的colormap(cmap)类型 方法一 方法二 方法三 matplotlib cmap取值问题 直接定义一个类来获取cmap中各个颜色方便使用 可视化官方提供的cmap 查看并打印matplotlib中所有的colormap(cmap)类型 代码如下: 方法一 import matplotlib.pyplot as plt cmaps = sorted(m for m in plt.cm.datad if not m.endswith("_r&quo

  • Python中实现从目录中过滤出指定文件类型的文件

    最近学习下python,将从指定目录中过滤出指定文件类型的文件输出的方法总结一下,供日后查阅 复制代码 代码如下: #!/usr/bin/env python import glob import os os.chdir("./") for file in glob.glob("*.py"): print file print "#######Another One##########" for file in os.listdir("

  • Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法

    本文实例讲述了Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法.分享给大家供大家参考.具体如下: 看看下面的例子和效果吧 # -*- coding: utf-8 -*- from matplotlib.widgets import MultiCursor from pylab import figure, show, np t = np.arange(0.0, 2.0, 0.01) s1 = np.sin(2*np.pi*t) s2 = np.sin(4*np.pi*t

  • 在Python中分别打印列表中的每一个元素方法

    Python版本 3.0以上 分别打印列表中的元素有两种: 方法一 a = [1,2,3,4] print(*a,sep = '\n') #结果 1 2 3 4 方法二 a = [1,2,3,4] [print(i) for i in a] #结果 1 2 3 4 [None, None, None, None] 以上这篇在Python中分别打印列表中的每一个元素方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python matplotlib中的subplot函数使用详解

    python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳永逸.我把常用函数作了一个总结,最后写了一个例子,以后基本不用怎么改了. 一.作图流程: 1.准备数据, , 3作图, 4定制, 5保存, 6显示 1.数据可以是numpy数组,也可以是list 2创建画布: import matplotlib.pyplot as plt #figure(num=N

  • python 如何在 Matplotlib 中绘制垂直线

    介绍 Matplotlib是Python中使用最广泛的数据可视化库之一.Matplotlib的受欢迎程度大部分来自其自定义选项.您可以调整其对象层次结构中的几乎任何元素. 在本教程中,我们将研究如何在Matplotlib图上绘制垂直线,这使我们能够标记和突出显示图的某些区域,而无需缩放或更改轴范围. 创建图 让我们首先用一些随机数据创建一个简单的图: import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots

  • python实现在多维数组中挑选符合条件的全部元素

    问题产生:今天在编写神经网络的Cluster作业时,需要根据根据数据标签用不同的颜色画出数据的分布情况,由此学习到了这种高效的方法. 传统思路:用for循环来挑选符合条件的元素,这样十分浪费时间. 代码示例: from sklearn.datasets.samples_generator import make_blobs import numpy as np import matplotlib.pyplot as plt #product 20 samples and divide them

  • Python调用Windows命令打印文件

    1.Python调用Windows命令打印文件 Windows命令行打印文件使用print 命令,具体用法可使用help print查看.下面是使用Python调用print指令执行打印文件功能的代码: import os def printer(filename): printername = r"/D:\\A340\hpLaser" cmd = "print " + printername + " " + filename print &qu

  • mac在matplotlib中显示中文的操作方法

    Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形   . 通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等. 下面开始今天的正文. 首先保证电脑里是否安装了中文字体,然后找到他们!! 具体步骤如下: 先打开终端,command+空格 搜索 ter,然后会蹦出终端,点开 输入 fc-list :lang=zh 如果显示command not found 输入 con

  • Python数据可视化之用Matplotlib绘制常用图形

    一.散点图 散点图用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式. 特点:判断变量之间是否存在数量关联趋势,表示离群点的分布规律. 散点图绘制: plt.scatter(x,y) # 以默认的形状颜色绘制散点图 实例: 假设我们获取到了上海2020年5,10月份每天白天的最高气温(分别位于列表a.b),那么此时如何观察气温和随时间变化的某种规律. # 绘制图形所需的数据 y_5 = [11,17,16,11,12,11,12,13,10,14,8

随机推荐