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

如何在Matplotlib中添加第二个X轴

慕皓君
2023-03-14
问题内容

我有一个非常简单的问题。我需要在绘图上有第二个x轴,并且我希望该轴具有一定数量的tic,它们对应于第一个x轴的特定位置。

让我们尝试一个例子。在这里,我将暗物质质量绘制为膨胀系数(定义为1 /(1 + z))的函数,该膨胀系数的范围为0到1。

semilogy(1/(1+z),mass_acc_massive,'-',label='DM')
xlim(0,1)
ylim(1e8,5e12)

我想在图的顶部放置另一个x轴,以显示对应于某些膨胀系数值的z轴。那可能吗?如果是的话,我怎么能拥有xtics斧头


问题答案:

我正在从@Dhara答案中的注释中获取线索,这听起来像是您要按new_tick_locations功能设置从旧x轴到新x轴的列表。在tick_function下面发生在点的numpy的阵列,它们映射到一个新的值,并且将它们格式化:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()

X = np.linspace(0,1,1000)
Y = np.cos(X*20)

ax1.plot(X,Y)
ax1.set_xlabel(r"Original x-axis: $X$")

new_tick_locations = np.array([.2, .5, .9])

def tick_function(X):
    V = 1/(1+X)
    return ["%.3f" % z for z in V]

ax2.set_xlim(ax1.get_xlim())
ax2.set_xticks(new_tick_locations)
ax2.set_xticklabels(tick_function(new_tick_locations))
ax2.set_xlabel(r"Modified x-axis: $1/(1+X)$")
plt.show()

在此处输入图片说明



 类似资料:
  • 过去,当我使用Control Center+DB2Express9.7时,我可以看到所有实例: 现在使用Data Studio 4.1+DB2 Express C11.1,我看不到第二个实例。为什么? 我试图遵循这个程序,但没有成功: null

  • 问题内容: 这是我的第一篇文章!希望您能帮帮我!:-) 我使用了NotePadExample提供的来自开发人员文档的代码来创建数据库。现在,我想添加第二个表来存储不同的数据。我可以毫无问题地添加注释,并且注释表的创建方式与路由表类似。我只是简单地“复制”并编辑了给定的代码,但是当我尝试插入到新表中时,出现错误消息: “ 0ERROR / Database(370):android.database

  • 问题内容: 我在同一张图上绘制了多个seaborn点图。x轴是序数,而不是数字。每个点图的序数值都相同。我想将每个图稍微移到一边,pointplot(dodge = …)参数的方式是在单个图内的多条线内进行,但是在这种情况下,是要在彼此之上绘制多个不同图。我怎样才能做到这一点? 理想情况下,我想要一种适用于任何matplotlib图的技术,而不仅仅是专门针对海洋的技术。由于数据不是数字,因此很难为

  • 下面是我的问题:强制Y轴只使用整数,我在那里得到了很大的帮助,我在绘制一个漂亮的图形时遇到了另一个问题。 我正在使用pyplot模块绘制第二个轴,在图的顶部有一些参考点,我似乎无法让底部和顶部的x轴就所谓的相同位置达成一致。。。 如果您查看图表,您会看到1 Kb(虚线)的标记和相同的2轴股票标签不一致。与1 Mb相同,但1Gb似乎对齐。 第二个轴来自此处开始的重叠子地块(据我所知): 我对两个轴使

  • 问题内容: 我在用 在或中,如果我们向其添加标签,则可以轻松放置图例。但是如果是或 我知道有一个可以显示颜色范围的颜色,但是并不满意。我想要一个带有名称(标签)的 我能想到的是,向矩阵中的每个元素添加标签,然后,尝试legend(),以查看其是否有效,但是如何向元素添加标签(如值)? 就我而言,原始数据如下: 例如,1代表“草”,2代表“沙”,3代表“山” …依此类推。imshow()非常适合我的

  • 问题内容: 我有数据库,已经创建了一个表,现在 我想在该数据库中创建第二个表()。我的问题是如何在现有数据库中添加此表?我有以下代码。任何帮助表示赞赏。 此代码不会创建第二个表。我想要数据库中的两个表。 它在logcat中显示以下错误。 问题答案: 制作另一个String,然后在您的中,再次调用: 编辑 要将另一个表添加到已存在的数据库中,请按如下所示修改您的方法。每当需要升级数据库时都会调用;请