Gab*_*iel 5 python matplotlib colorbar
我正在尝试生成一个具有多个轴的图,每个轴都有自己的颜色条(代码如下)。如果我使用默认的颜色条绘图,绘图和颜色条之间的水平间距太大:
如果我尝试使用该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 = make_axes_locatable(ax)
# color_axis = the_divider.append_axes("right", size="1%", pad=0.)
# cbar = plt.colorbar(SC, cax=color_axis)
cbar.set_label("test", fontsize=15, labelpad=10)
fig.tight_layout()
plt.savefig('test.png', dpi=300, bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)
使用pad参数colorbar设置轴和颜色条之间的填充。pad以用作空间的原始轴大小的分数为单位给出。这里例如pad=0.01可能有道理。
import numpy as np
from matplotlib import pyplot as plt
# Random data to plot
data = np.random.uniform(0., 1., (2, 100))
z = np.random.uniform(0., 10., 100)
# Define figure
fig, axes = plt.subplots(nrows=2, figsize=(30, 30))
for i, ax in enumerate(axes.flat):
sc = ax.scatter(*data, c=z)
cbar = fig.colorbar(sc, ax=ax, pad=0.01)
cbar.set_label("test", fontsize=15, labelpad=10)
fig.tight_layout()
plt.savefig('test.png', dpi=300, bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7233 次 |
| 最近记录: |