首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib Colorbar Ticks Mathtext格式

Matplotlib Colorbar Ticks Mathtext格式
EN

Stack Overflow用户
提问于 2020-03-28 05:51:33
回答 1查看 498关注 0票数 0

标题不言自明,找不到如何实现它。对于axis ticks格式,类似的命令看起来像这样:ax.ticklabel_format(useMathText=True),这个命令没有问题,它工作。但是为了让颜色栏的标记以MathText格式出现,我不知道如何实现它。我曾尝试将useMathText=True作为arg传递到cbar.ax.tick_params()cbar = plt.colorbar()中,但没有成功。

要重新创建:

代码语言:javascript
复制
import numpy as np
import matplotlib.tri as mtri
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable

p = np.array([[0, 0], [1, 0], [1, 1], [0, 1], [0.5, 0.5]])
e = np.array([[0, 1, 4], [3, 0, 4], [1, 2, 4], [2, 3, 4]])
t = mtri.Triangulation(p[:, 0], p[:, 1], e)
z = np.random.rand(5)

fig, ax = plt.subplots()
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
ax.set_aspect('equal', 'box')
ax.set(xlim=(min(p[:, 0]), max(p[:, 0])), ylim=(min(p[:, 1]), max(p[:, 1])))
c = ax.tricontourf(t, z, 10, cmap='plasma', vmin=np.min(z), vmax=np.max(z),
                   levels=np.linspace(np.min(z), np.max(z), 100))
ax.triplot(t, color='white', lw=0.1)
ax.set_title('Title', fontsize=16)
cbar = plt.colorbar(c, cax=cax, format='%.0e', ticks=np.linspace(np.min(z), np.max(z), 3))
cbar.set_label('Colorbar title', fontsize=16)
# cbar.ax.ticklabel_format(useMathText=True)
ax.ticklabel_format(useMathText=True)
plt.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-28 07:10:39

正如欧内斯特在评论中所解释的那样,轮廓的颜色栏获得了一个不接受useMathTextFixedFormatter。在我的版本中,代码没有给出错误,但正如您所指出的,也没有生成所需的输出。

因此,答案是将格式化程序更改为ScalarFormatter,同时告诉它使用数学文本。垂直颜色栏的格式化程序可以通过cbar.ax.yaxis.set_major_formatter设置。

代码语言:javascript
复制
from matplotlib import pyplot as plt
from matplotlib import ticker
import numpy as np

plt.tricontourf(np.random.uniform(1, 10, 100), np.random.uniform(1, 10, 100), np.random.uniform(1e-6, 1e-5, 100))
cbar = plt.colorbar()
cbar.ax.yaxis.set_major_formatter(ticker.ScalarFormatter(useMathText=True))
plt.show()

请让我知道它现在是否适用于您。(我的系统,现在Windows下的matplotlib 3.2.1,Pycharm 2019.3.4。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60894584

复制
相关文章

相似问题

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