我正在使用Matplolib中的自定义工具栏.
为了让它起作用,我必须设置plot.rcParams['toolbar'] = 'toolmanager'
这有增加鼠标坐标字体大小的副作用.
问题与MPL_SISTTER_Density一起出现.这些绘图为鼠标坐标框中的密度值添加了额外的一行.坐标如下所示:
x=2.3535 y=4.565
[2.56] <--- extra row with density value
由于坐标仅在鼠标位于绘图限制范围内时显示,因此当鼠标移入和移出绘图时,额外的行会增加工具栏高度,并导致整个窗口不规律地调整大小,这非常恼人.
使用的代码:(但没有太大而无法粘贴到此处的自定义工具栏):
import matplotlib.pyplot as plot
import mpl_scatter_density # adds projection='scatter_density'
from matplotlib.colors import LinearSegmentedColormap
import numpy as np
# "Viridis-like" colormap with white background
white_viridis = LinearSegmentedColormap.from_list('white_viridis', [
(0, '#ffffff'),
(1e-20, '#440053'),
(0.2, '#404388'),
(0.4, '#2a788e'),
(0.6, '#21a784'),
(0.8, '#78d151'),
(1, '#fde624'),
], N=256)
# Fake data for testing
x = np.random.normal(size=100000)
y = x * 3 + np.random.normal(size=100000)
fig = plot.figure()
ax = fig.add_subplot(1, 1, 1, projection='scatter_density')
density = ax.scatter_density(x, y, cmap=white_viridis)
fig.colorbar(density, label='Number of points per pixel')
plot.show()
我的 idea 是要么将字体大小设置为plot.rcParams['font.size']
(这在VScode调试器中手动设置时效果很好,但在正常执行脚本时由于某种原因不起作用!),要么完全删除密度值.
但是,值为ax.format_coord
仅修改第一行鼠标坐标的格式.我似乎找不到如何修改密度值格式.