Matplotlib Colorbar 显示数字
Matplotlib Colorbar Display Digtis
如何在 matplotlib 中准确指定颜色条标签? 通常,我需要创建非常具体的色标,但颜色条标签显示效果很差,你无法分辨是什么规模是。我想手动定义颜色条刻度线旁边的文本,或者至少让它们以科学记数法显示。
这是一个示例图,您无法分辨底部的四个色块代表什么:
下面是一个如何创建该图的工作示例:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors
# mock up some data
x = np.random.random(50)
y = np.random.random(50)
c = np.arange(0, 1, 1.0/50.0) # color of points
c[0] = 0.00001
c[1] = 0.0001
c[2] = 0.001
c[3] = 0.01
s = 500 * np.random.random(50) + 25 # size of points
# set up some custom color scaling
lcmap = colors.ListedColormap(['#FFFFFF', '#FF99FF', '#8000FF',
'#0000FF', '#0080FF', '#58FAF4',
'#00FF00', '#FFFF00', '#FF8000',
'#FF0000'])
bounds = [0.0, 0.000001, 0.00001, 0.0001,
0.001, 0.01, 0.1, 0.25, 0.5, 0.75, 1.0]
norm = colors.BoundaryNorm(bounds, lcmap.N)
# create some plot
fig, ax = plt.subplots()
im = ax.scatter(x, y, c=c, s=s, cmap=lcmap, norm=norm)
# add the colorbar
fig.colorbar(im, ax=ax)
fig.savefig('temp.jpg')
cbar = fig.colorbar(cax, ticks=[-1, 0, 1])
cbar.ax.set_xticklabels(['Low', 'Medium', 'High'])
并使用您想要的任何可迭代对象而不是 ['Low'、'Medium'、'High']
参见:http://matplotlib.org/examples/pylab_examples/colorbar_tick_labelling_demo.html
如何在 matplotlib 中准确指定颜色条标签? 通常,我需要创建非常具体的色标,但颜色条标签显示效果很差,你无法分辨是什么规模是。我想手动定义颜色条刻度线旁边的文本,或者至少让它们以科学记数法显示。
这是一个示例图,您无法分辨底部的四个色块代表什么:
下面是一个如何创建该图的工作示例:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors
# mock up some data
x = np.random.random(50)
y = np.random.random(50)
c = np.arange(0, 1, 1.0/50.0) # color of points
c[0] = 0.00001
c[1] = 0.0001
c[2] = 0.001
c[3] = 0.01
s = 500 * np.random.random(50) + 25 # size of points
# set up some custom color scaling
lcmap = colors.ListedColormap(['#FFFFFF', '#FF99FF', '#8000FF',
'#0000FF', '#0080FF', '#58FAF4',
'#00FF00', '#FFFF00', '#FF8000',
'#FF0000'])
bounds = [0.0, 0.000001, 0.00001, 0.0001,
0.001, 0.01, 0.1, 0.25, 0.5, 0.75, 1.0]
norm = colors.BoundaryNorm(bounds, lcmap.N)
# create some plot
fig, ax = plt.subplots()
im = ax.scatter(x, y, c=c, s=s, cmap=lcmap, norm=norm)
# add the colorbar
fig.colorbar(im, ax=ax)
fig.savefig('temp.jpg')
cbar = fig.colorbar(cax, ticks=[-1, 0, 1])
cbar.ax.set_xticklabels(['Low', 'Medium', 'High'])
并使用您想要的任何可迭代对象而不是 ['Low'、'Medium'、'High']
参见:http://matplotlib.org/examples/pylab_examples/colorbar_tick_labelling_demo.html