可以像这样生成垂直颜色条(简化):
import matplotlib.pyplot as plt
import matplotlib as mpl
plt.figure()
c_ax=plt.subplot(111)
cb = mpl.colorbar.ColorbarBase(c_ax,orientation='vertical')
plt.savefig('my_colorbar.png')
Run Code Online (Sandbox Code Playgroud)
是否可以在对面获得刻度标签?
我正在尝试生成一个具有多个轴的图,每个轴都有自己的颜色条(代码如下)。如果我使用默认的颜色条绘图,绘图和颜色条之间的水平间距太大:
如果我尝试使用该make_axes_locatable()方法,我会得到这个可怕的结果:
这是怎么回事?我该如何解决这个问题?
import numpy as np
from matplotlib import pyplot as plt
import matplotlib.gridspec as gridspec
from mpl_toolkits.axes_grid1 import make_axes_locatable
# Random data to plot
data = np.random.uniform(0., 1., (2, 100))
z = np.random.uniform(0., 10., 100)
# Define figure
fig = plt.figure(figsize=(30, 30))
gs = gridspec.GridSpec(12, 12)
for i in range(2):
ax = plt.subplot(gs[2 * i:2 + (2 * i), 0:8])
SC = plt.scatter(*data, c=z)
# Colorbar 1
cbar = plt.colorbar()
# Colorbar 2
# the_divider = …Run Code Online (Sandbox Code Playgroud) 我想在 matplotlib 中创建一个具有指定大小的绘图,例如
plt.figure(figsize=(3, 3))
Run Code Online (Sandbox Code Playgroud)
我向图中添加一些内容并绘制颜色条
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)
现在,整个图形的原始尺寸(3x3 英寸)保持不变,但绘图的宽度(实际内容)减小,以适合 3x3 英寸窗口中的绘图和颜色条。
添加颜色条时如何保持绘图区域的宽度固定并根据需要调整整个图形的大小?
是否可以将色图(现在位于原始图的右侧)放在图的顶部?
我的代码:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D, get_test_data
from matplotlib import cm
import numpy as np
# set up a figure twice as wide as it is tall
fig = plt.figure(figsize=plt.figaspect(0.5))
#===============
# First subplot
#===============
# set up the axes for the first plot
ax = fig.add_subplot(1, 2, 1, projection='3d')
# plot a 3D surface like in the example mplot3d/surface3d_demo
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R …Run Code Online (Sandbox Code Playgroud)