如何使用 excel-VBA 绘制 Arrhenius 图?又名:如何在 excel-VBA 中做一个倒数的 x 轴?
How to do an Arrhenius plot using excel-VBA? AKA: How to do a reciprocal x-axis in excel-VBA?
我想编写一个程序将温度相关数据转换为阿伦尼乌斯图。 Arrhenius 图显示了热激活的 属性 与温度倒数即 1/T 的对数。现在是 1/T 大多数人不习惯的东西。这就是为什么大多数图还包含第二个轴上的温度转换。通常在图表的顶部。输出应如下所示:
第二个轴只是为了更好的可读性,它对应于具有关系的主轴:
primary=1/secondary
secondary=1/primary
我在 excel-VBA (excel 2010) 中不能做的是第二个 x 轴的倒数。没有像这样的预定义轴缩放。一个轴的属性ScaleType
有xlScaleLinear
和xlScaleLogarithmic
。有没有办法做到这一点?
第二个问题是:
Dim CH As Chart
Set CH = Tabelle2.ChartObjects(1).Chart
CH.ChartType = xlXYScatterLinesNoMarkers
With CH
.HasAxis(xlCategory, xlSecondary) = True
End With
好像不行。这意味着 xyScatterplot 似乎没有启用 secondaryXaxis。
我可以尝试使用表格添加标签和标记,但这似乎有点痛苦,我不是唯一遇到此问题的人。
问题一:如何格式化坐标轴的倒数(1/x)?
问题 1b:如何在 XY 散点图中正确添加第二个 x 轴?
您可以通过使用带有数据标签的系列创建一个假轴来做到这一点(受 https://peltiertech.com/secondary-axes-that-work-proportional-scales/ 启发):
A 列和 B 列是您的数据。 C 列与主 X 轴的 X 刻度匹配。 D 列是 =1/C2
等,E 列是图表的 y 轴最大值。现在只需创建一系列新的 C 和 E 列,将其格式化为没有线,在这种情况下我选择了 + 标记,但如果您希望它准确,您可以创建自己的垂直线标记。然后添加数据标签设置为范围列 D.
我认为如果没有这个 hack,你不会找到另一种方法来做到这一点,但它真的没有那么难,也不需要 VBA 这在可读性/可听性方面总是一个加分项你的工作簿。
另一种选择是使用数据标签将实际温度写入数据点:
C 列包含摄氏温度。
由于 Arrhenius 图仅定义为 ln(k)
对 1/T
,我认为这将是一个不错的选择。
我想编写一个程序将温度相关数据转换为阿伦尼乌斯图。 Arrhenius 图显示了热激活的 属性 与温度倒数即 1/T 的对数。现在是 1/T 大多数人不习惯的东西。这就是为什么大多数图还包含第二个轴上的温度转换。通常在图表的顶部。输出应如下所示:
第二个轴只是为了更好的可读性,它对应于具有关系的主轴:
primary=1/secondary
secondary=1/primary
我在 excel-VBA (excel 2010) 中不能做的是第二个 x 轴的倒数。没有像这样的预定义轴缩放。一个轴的属性ScaleType
有xlScaleLinear
和xlScaleLogarithmic
。有没有办法做到这一点?
第二个问题是:
Dim CH As Chart
Set CH = Tabelle2.ChartObjects(1).Chart
CH.ChartType = xlXYScatterLinesNoMarkers
With CH
.HasAxis(xlCategory, xlSecondary) = True
End With
好像不行。这意味着 xyScatterplot 似乎没有启用 secondaryXaxis。
我可以尝试使用表格添加标签和标记,但这似乎有点痛苦,我不是唯一遇到此问题的人。
问题一:如何格式化坐标轴的倒数(1/x)?
问题 1b:如何在 XY 散点图中正确添加第二个 x 轴?
您可以通过使用带有数据标签的系列创建一个假轴来做到这一点(受 https://peltiertech.com/secondary-axes-that-work-proportional-scales/ 启发):
A 列和 B 列是您的数据。 C 列与主 X 轴的 X 刻度匹配。 D 列是 =1/C2
等,E 列是图表的 y 轴最大值。现在只需创建一系列新的 C 和 E 列,将其格式化为没有线,在这种情况下我选择了 + 标记,但如果您希望它准确,您可以创建自己的垂直线标记。然后添加数据标签设置为范围列 D.
我认为如果没有这个 hack,你不会找到另一种方法来做到这一点,但它真的没有那么难,也不需要 VBA 这在可读性/可听性方面总是一个加分项你的工作簿。
另一种选择是使用数据标签将实际温度写入数据点:
C 列包含摄氏温度。
由于 Arrhenius 图仅定义为 ln(k)
对 1/T
,我认为这将是一个不错的选择。