如何更改多个轴标签的字体大小(使用 host_subplot API 创建)

2023-12-19

我在互联网上查看,绝对所有具有多个轴的示例都具有默认值的 xlabel 和 ylabel 并且非常小

我使用以下代码来创建轴:

from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA

...

    ax=[]
    if  twoaxes or threeaxes:
        ax.append(host_subplot(111, axes_class=AA.Axes))
        plt.subplots_adjust(right=0.75)
    else:
        ax.append(fig.add_subplot(111))
    if twoaxes or threeaxes:
        ax.append(ax[0].twinx())
    if threeaxes:
        ax.append(ax[0].twinx())
        offset = 60
        new_fixed_axis = ax[2].get_grid_helper().new_fixed_axis
        ax[2].axis["right"] = new_fixed_axis(loc="right", axes=ax[2],offset=(offset, 0))
        ax[2].axis["right"].toggle(all=True)   

我尝试用3种方法改变字体大小,但都失败了

1)

ax[i].set_xlabel(xlabel, fontsize = fontsize)

2)

fontd = {'family' : 'serif',
                 'color'  : 'darkred',
                 'weight' : 'normal',
                 'size'   : fontsize,
        }
        ax[i].yaxis.set_label_text(ylabel, fontdict=fontd)

and 3)

   ax[i].xaxis.get_label().set_fontsize(fontsize)

这些方法都不起作用,并且考虑到到目前为止所有示例都显示轴标签的字体非常小,我认为这要么非常困难,要么不可能。在此阶段,任何想法都是受欢迎的。

我忘了提到当轴创建时

  fig.add_subplot(111)

上面提到的所有方法都可以正常工作,并且字体大小已更改。


经过一番挖掘,我找到了答案。我使用下面更简单的示例并添加两行来执行我的要求。

以下两行更改 axisartist 字体

    par2.axis["right"].label.set_fontsize(34)
    host.axis["bottom"].label.set_fontsize(34)

这是完整的示例:

from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import matplotlib.pyplot as plt

if 1:

    host = host_subplot(111, axes_class=AA.Axes)
    plt.subplots_adjust(right=0.75)

    par1 = host.twinx()
    par2 = host.twinx()

    offset = 60
    new_fixed_axis = par2.get_grid_helper().new_fixed_axis
    par2.axis["right"] = new_fixed_axis(loc="right",
                                        axes=par2,
                                        offset=(offset, 0))

    par2.axis["right"].toggle(all=True)



    host.set_xlim(0, 2)
    host.set_ylim(0, 2)

    host.set_xlabel("Distance")
    host.set_ylabel("Density")
    par1.set_ylabel("Temperature")
    par2.set_ylabel("Velocity")

    p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
    p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
    p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

    par1.set_ylim(0, 4)
    par2.set_ylim(1, 65)

    host.legend()

    host.axis["left"].label.set_color(p1.get_color())

    par1.axis["right"].label.set_color(p2.get_color())
    par2.axis["right"].label.set_color(p3.get_color())
    fontd = {'family' : 'serif',
                 'color'  : 'darkred',
                 'weight' : 'normal',
                 'size'   : 'large',
    }

    #This is the code that changes the font.  
    par2.axis["right"].label.set_fontsize(34)
    host.axis["bottom"].label.set_fontsize(34)


    plt.draw()
    plt.show()

输出:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改多个轴标签的字体大小(使用 host_subplot API 创建) 的相关文章

  • 我可以在 matplotlib 中的绘图左侧放置一个垂直颜色条吗?

    来自颜色条方法的 matplotlib 命令摘要 http matplotlib org api pyplot api html highlight colorbar matplotlib pyplot colorbar我知道关键字参数or
  • Pandas,条形图注释

    如何正确给 Pandas 条形图添加注释 我正在跟进使用 Pandas 和 MPL 进行条形图注释 http robertmitchellv com blog bar chart annotations with pandas and mp
  • 如何在seaborn中将matplotlib颜色图设置为调色板

    如何将 matplotlib 颜色图设置为 seaborn 中的调色板 有一个类似的问题here https stackoverflow com questions 57373881 converting a matplotlib colo
  • 在Python matplotlib中的plot_surface之上绘制单个3D点

    我有一些代码可以使用 matplotlib 在 Python 中绘制 3D 曲面 import math import numpy as np import matplotlib pyplot as plt from pylab impor
  • Python 3.x 中的绘图

    在Python 2 6中 我使用matplotlib制作了一些简单的图表 但是 它与 Python 3 1 不兼容 有哪些替代模块可以完成相同的事情而不非常复杂 您说您想创建一些简单的图表 但没有真正说明您想要多简单或哪种类型的图表 只要它
  • Python - matplotlib - 加权图

    是否可以绘制weighted graphs在 python 中使用 matplotlib 我在 matplotlib 网站上没有找到它 如果我不能使用matplotlib 我可以用其他东西来做吗 我们可以做吗libreoffice 本质上这
  • 如何在Python中绘制“Trace Explorer”?

    我需要重新创建一个情节 踪迹浏览器 https www bupar net trace explorer html与下面在 R 中创建的类似 我希望使用 matplotlib 但找不到任何有关如何执行这样的跟踪资源管理器的示例或参考 有人能
  • 基于 Unix ASCII 的命令行图表/绘图工具

    有没有好的命令行 UNIX 图表 绘图 绘图工具 我正在寻找能够在 ASCII 图表上绘制 xy 点的东西 澄清一下 我正在寻找能够以 ASCII 格式输出图形 如 ascii art 风格 的东西 这样我就可以在交互式 shell 会话中
  • Matplotlib:以数据坐标中给定的宽度绘制线条

    我试图弄清楚如何绘制具有数据单位宽度的线条 例如 在下面的代码片段中 我希望宽度为 80 的线的水平部分始终从 y 40 延伸到 y 40 标记 并且即使坐标系的限制也保持这种状态改变 有没有办法用 matplotlib 中的 Line2D
  • 在 folium 中显示栅格数据(不处理任何数据值)。

    我正在尝试使用 folium 显示栅格类型数据 numpy 数组 这是我到目前为止所拥有的 import folium from folium plugins import ImageOverlay import numpy as np f
  • 使用 Matplotlib、PyQt 和 Threading 进行实时绘图导致 python 崩溃

    我一直在努力研究我的 Python 应用程序 但找不到任何答案 我有 PyQT GUI 应用程序 它使用 Matplotlib 小部件 GUI 启动一个新线程来处理 mpl 小部件的绘图 恐怕我现在通过从另一个线程访问 matplotlib
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • Python极坐标图:绘制与角度对应的值

    我正在尝试绘制以不同角度记录的传感器数据 import pandas as pd import matplotlib pyplot as plt create dataframe each row contains an angle and
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • 在 MatPlotLib 中检索自定义破折号

    关于如何使用 matplotlib 线中设置自定义破折号有很多问题Line2D set linestyle and Line2D set dashes 但是 我似乎找不到在设置后检索破折号图案的方法 这是在主站点上设置破折号的示例 我将在下
  • 绘制与Fig.show()内联的IPython Notebook图形?

    我正在使用 IPython Notebook 调用内联模式 pylab inline 以下代码立即在单元格处绘制一个图形 fig plt figure axes fig add axes 0 0 1 1 不过 我想在一个单元格中创建绘图 轴

随机推荐