我想知道是否有一个函数调用可以给我matplotlib 1.5中可用的所有colormaps的名称?
它曾经是可能的(见这里):
import matplotlib.pyplot as plt
cmaps = sorted(m for m in plt.cm.datad if not m.endswith("_r"))
Run Code Online (Sandbox Code Playgroud)
但是在mpl 1.5中运行它不会返回新的颜色映射,例如viridis
,magma
等等.在新的参考页面上,代码实际上是硬编码名称(见这里),但我想知道是否仍然可以进行类似的查询?
pr9*_*r94 12
这是一些绘制链接到其 ID 的所有可用颜色图的代码
import matplotlib as mpl
import matplotlib.pyplot as plt
def plot_colorMaps(cmap):
fig, ax = plt.subplots(figsize=(4,0.4))
col_map = plt.get_cmap(cmap)
mpl.colorbar.ColorbarBase(ax, cmap=col_map, orientation = 'horizontal')
plt.show()
for cmap_id in plt.colormaps():
print(cmap_id)
plot_colorMaps(cmap_id)
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样
口音
Accent_r
蓝调
等等...
tmd*_*son 10
plt.colormaps()
返回所有已注册色彩映射的列表.来自文档:
matplotlib.pyplot.colormaps()
Matplotlib提供了许多色彩映射,其他的可以使用register_cmap()添加.此函数记录内置的色彩映射,如果调用,还将返回所有已注册色彩映射的列表.
这将返回该列表包括viridis
,magma
,inferno
和plasma
为我1.5.0
XII*_*II_ 10
下面是基于 pr94\xe2\x80\x99s 方法的代码,该方法使用标题中的 id 绘制每个颜色图,但不会为每个颜色图打开一个图形。
\nI\xe2\x80\x99ve 使用它在一张图片中创建所有 166 个颜色图的概述(mpl 版本 3.4.2)。
\n
import matplotlib as mpl\nimport matplotlib.pyplot as plt\n\ndef plot_all_cmaps():\n N_ROWS, N_COLS = 8, 7 # 13, 13 <-- for all in one figure \n HEIGHT, WIDTH = 7, 14\n\n cmap_ids = plt.colormaps()\n n_cmaps = len(cmap_ids)\n \n print(f\'mpl version: {mpl.__version__},\\nnumber of cmaps: {n_cmaps}\')\n \n index = 0\n while index < n_cmaps:\n fig, axes = plt.subplots(N_ROWS, N_COLS, figsize=(WIDTH, HEIGHT))\n for row in range(N_ROWS):\n for col in range(N_COLS):\n ax = axes[row, col]\n cmap_id = cmap_ids[index]\n cmap = plt.get_cmap(cmap_id)\n mpl.colorbar.ColorbarBase(ax, cmap=cmap,\n orientation=\'horizontal\')\n ax.set_title(f"\'{cmap_id}\', {index}", fontsize=8)\n ax.tick_params(left=False, right=False, labelleft=False,\n labelbottom=False, bottom=False)\n \n last_iteration = index == n_cmaps-1\n if (row==N_ROWS-1 and col==N_COLS-1) or last_iteration:\n plt.tight_layout()\n #plt.savefig(\'colormaps\'+str(index)+\'.png\')\n plt.show()\n if last_iteration: return\n index += 1\n\nplot_all_cmaps()\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
3121 次 |
最近记录: |