Python Matplotlib颜色条在左侧/对面
可以生成这样的垂直色条(简化): 导致类似的结果(由于空间原因而旋转):Python Matplotlib颜色条在左侧/对面,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,可以生成这样的垂直色条(简化): 导致类似的结果(由于空间原因而旋转): 可以在另一侧获得刻度标签吗?您可以使用c\u ax.yaxis.set\u ticks\u position() 以你为例: import matplotlib.pyplot as plt import matplotlib as mpl plt.viridis() fig=plt.figure() c_ax=plt.subplot(199) cb = mpl.colorbar.ColorbarBase(c_ax,o
可以在另一侧获得刻度标签吗?您可以使用
c\u ax.yaxis.set\u ticks\u position()
以你为例:
import matplotlib.pyplot as plt
import matplotlib as mpl
plt.viridis()
fig=plt.figure()
c_ax=plt.subplot(199)
cb = mpl.colorbar.ColorbarBase(c_ax,orientation='vertical')
c_ax.yaxis.set_ticks_position('left')
plt.savefig('my_colorbar.png')
注意:您也可以以类似的方式移动colorbar标签:
c_ax.yaxis.set_label_position('left')
最后,如果您有一个水平色条,并且希望将刻度和标签移动到顶部,您可以使用xaxis
上的等效功能:
c_ax.xaxis.set_label_position('top')
c_ax.xaxis.set_ticks_position('top')
我也有同样的问题。当您明确设置颜色条的轴时,可能会出现这种情况。在这种情况下,您可以轻松指定在这些轴的哪一侧获得刻度和标签。例如,如果您使用imshow创建了一个图像
fig = plt.figure()
ax = plt.subplot(1, 1, 1)
im = ax.imshow(data)
在本例中,可以使用inset_轴定义颜色条的轴:
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
cbaxes = inset_axes(ax, width="7%", height="20%", loc=4)
然后添加颜色条
cb = fig.colorbar(im, cax=cbaxes, ticks=[vmin, vmax], orientation='vertical')
然后控制滴答声的位置等等
cbaxes.yaxis.tick_left()
我不知道为什么,但这些命令对我都不起作用。如果这也是您的情况,我通过指定colorbar属性解决了这个问题
location='left'
它同时处理刻度和标签。如果您仍然希望颜色条位于绘图的右侧,只需定义一个限制在所需位置的新轴,并将颜色条链接到该轴
cbar_ax=fig.add_axes([x0, y0, width, height])
由于某些原因,将更改应用于颜色条输入轴(cax
参数)对我不起作用
但是,从colorbar对象抓取轴,然后应用更改,效果很好:
cb.ax.xaxis.set\u ticks\u位置(“顶部”)
cbar_ax=fig.add_axes([x0, y0, width, height])