首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何添加Matplotlib Colorbar记号

如何添加Matplotlib Colorbar记号
EN

Stack Overflow用户
提问于 2011-07-16 13:00:00
回答 6查看 58.9K关注 0票数 19

有许多matplotlib关于堆栈溢出的colorbar问题,但我无法理解它们来解决我的问题。

如何在颜色栏上设置yticklabels?

下面是一些示例代码:

代码语言:javascript
复制
from pylab import *
from matplotlib.colors import LogNorm
import matplotlib.pyplot as plt

f = np.arange(0,101)                 # frequency 
t = np.arange(11,245)                # time
z = 20*np.sin(f**0.56)+22            # function
z = np.reshape(z,(1,max(f.shape)))   # reshape the function
Z = z*np.ones((max(t.shape),1))      # make the single vector to a mxn matrix
T, F = meshgrid(f,t)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.pcolor(F,T,Z, norm=LogNorm(vmin=z.min(),vmax=z.max()))
plt.xlim((t.min(),t.max()))
mn=int(np.floor(Z.min()))        # colorbar min value
mx=int(np.ceil(Z.max()))         # colorbar max value
md=(mx-mn)/2                     # colorbar midpoint value
cbar=plt.colorbar()              # the mystery step ???????????
cbar.set_yticklabels([mn,md,mx]) # add the labels
plt.show()
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-07-16 13:57:53

更新记号和记号标签:

代码语言:javascript
复制
cbar.set_ticks([mn,md,mx])
cbar.set_ticklabels([mn,md,mx])
票数 44
EN

Stack Overflow用户

发布于 2012-04-13 21:47:52

一个具有五个刻度的工作示例(对于任何值范围)是:

代码语言:javascript
复制
m0=int(np.floor(field.min()))            # colorbar min value
m4=int(np.ceil(field.max()))             # colorbar max value
m1=int(1*(m4-m0)/4.0 + m0)               # colorbar mid value 1
m2=int(2*(m4-m0)/4.0 + m0)               # colorbar mid value 2
m3=int(3*(m4-m0)/4.0 + m0)               # colorbar mid value 3
cbar.set_ticks([m0,m1,m2,m3,m4])
cbar.set_ticklabels([m0,m1,m2,m3,m4])
票数 8
EN

Stack Overflow用户

发布于 2016-07-03 01:16:06

treenick的回答让我开始了,但是如果你的colorbar是在0和1之间缩放的,那么如果你的fields没有在0和1之间缩放,那么代码就不会绘制刻度。

代码语言:javascript
复制
m0=int(np.floor(field.min()))            # colorbar min value
m4=int(np.ceil(field.max()))             # colorbar max value
num_ticks = 10
# to get ticks
ticks = np.linspace(0, 1, num_ticks)
# get labels
labels = np.linspace(m0, m1, num_ticks)

如果你想要间隔标签,你可以像这样做python列表索引:假设跳过每隔一个刻度

代码语言:javascript
复制
ticks = ticks[::2]
labels = labels[::2]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6715442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档