当前位置: 首页 > 面试题库 >

Matplotlib:在对数图中禁用10的幂

戚阳
2023-03-14
问题内容

有没有一种简单的方法可以使matplotlib在对数图中不显示10的幂,而仅显示数字?即,而不是[10^1, 10^2, 10^3]显示[10, 100, 1000]?我不想更改刻度线的位置,只想摆脱十的功效。

我可以通过自己更改标签xticks,但是随后我得到了y刻度标签的字体或大小不匹配。我正在使用TeX编写此文本。我尝试了以下方法:

xx, locs = xticks()
ll = [r'\rm{%s}' % str(a) for a in xx]
xticks(xx, ll)

在这种情况下,我可以使用相同的LaTeX罗马字体,但是大小和外观与y轴上的不同。另外,如果我在matplotlib中使用了不同的LaTeX字体,这将是有问题的。

是否有更灵活的方式来关闭十位符号的功效?


问题答案:

使用ScalarFormatter

from matplotlib import rc
rc('text', usetex=True)
rc('font', size=20)

import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter

fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(111)
ax.semilogx(range(100))
ax.xaxis.set_major_formatter(ScalarFormatter())
plt.show()


 类似资料:
  • 问题内容: 使用Matplotlib,是否可以在图形上打印每个点的值? 例如,如果我有: 如何在绘图上显示y值(例如,在(0,5)点附近打印5,在(1,3)点附近打印3,等等)? 问题答案: 您可以使用annotate命令将文本注释放置在所需的任何x和y值处。要将它们准确地放置在数据点上,您可以执行此操作 如果您希望注释稍微偏移一点,则可以将行更改为

  • 我有一个pandas数据框,它在一系列中具有以下值 我被指示用Python 3.6在Jupyter笔记本中绘制两个直方图。不用担心,对吧? 我选择了8个垃圾箱,因为这对我来说是最好的。我还被指示用x的对数绘制另一个直方图。 这个直方图看起来很糟糕。我做得不对吗?我试过摆弄这个情节,但我所做的一切似乎都让柱状图看起来更糟。例子: 除了将X的日志绘制为直方图之外,我没有得到任何指示。 我真的很感激任何

  • 问题内容: 我试图用风玫瑰的4个子图制作一个人物,但是我意识到风玫瑰只有这样的轴:那么,我如何用风玫瑰画一个子图? 问题答案: 有两种解决方案: (a)从矩形创建轴 首先,这里已经存在一个类似的问题:如何将特定轴添加到matplotlib子图中? 在那里,解决方案是在图中创建一个具有新子图轴坐标的矩形,然后调用 一个更容易理解的例子是 (b)添加投影 现在创建该矩形可能会很烦人,并且能够使用mat

  • NumPy有一个numpy.histogram()函数,它是数据频率分布的图形表示。 相等水平尺寸的矩形对应于称为bin类间隔和对应于频率的variable height 。 numpy.histogram() numpy.histogram()函数将输入数组和bin作为两个参数。 bin数组中的连续元素充当每个bin的边界。 import numpy as np a = np.array([2

  • 问题内容: 我正在为特定实验构建一类绘图工具。我目前有两种绘图方法,一种使用imshow()的静态绘图,一种也使用imshow()的“电影”格式。 这两种方法以及任何将来的方法都将获得与我可能编写的任何特定绘图方法相同的参数。使用plot类时,我在配置对象中具有所有这些参数。 我不想在每种绘图方法中都重写代码。我想初始化一个将设置以下args的对象(我认为是AxesImage):vmin,vmax

  • 我正在为一个特定的实验构建一类绘图工具。我目前有两种绘图方法,一种是使用imshow()的静态绘图,另一种是使用imshow()的“电影”格式。 无论是方法还是任何未来的方法,都要获取与我可能编写的任何特定绘图方法相同的参数。在使用情节类时,我在一个配置对象中拥有所有这些参数。 我不想在每个plot方法中重写代码。我想初始化一个对象(我想是AxeImage),它将设置以下参数:vmin、vmax、

  • 问题内容: 我想在同一图中创建具有不同数据集的3D散点图,并在其标签中创建图例。我面临的问题是我无法正确添加图例,并且得到了带有空标签的图,如图所示: http://tinypic.com/view.php?pic=4jnm83&s=5#.Uqd-05GP- gQ 。 更具体地说,我得到了错误: 请在下面找到我到目前为止尝试过的示例演示: 我看过其他大致相似的示例,但没有一个使用scatter()

  • 这让我发疯,我想知道我是否只是不了解直方图,matplotlib或世界的基本知识。如果我尝试用matplotlib的直方图绘制以下数据,我得到以下图像,这绝对不正确: 1.25 似乎是正确的,但例如,5 是完全错误的,而 1 没有绘制。我做错了什么吗?(注意:矩阵直方图的默认对齐方式以值为中心)