如何处理图表轴标签中的大数字

如何处理图表轴标签中的大数字

我用pgfplots它来可视化我的实验结果,但有些实验结果的数字非常大(例如 10^18-10^19$)。 pgfplots 处理它们的方式是,它将一个大因子(例如 $10^18$)放在图的顶部,并选择小数字作为标签。

到目前为止,我收到了一些关于图表中此类标签的负面反馈;我需要知道:

  1. 有一个更好的方法吗?

  2. 它是标准的吗?有人可以给我推荐一些使用相同方法表示轴刻度标签的好出版物吗?

以下是一个示例文档:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
            \begin{tikzpicture}
                \begin{axis}
                    \addplot coordinates {
                        (5,-4864175164880)
                        (10,-9728350329760)
                        (15,-14592525494640)
                        (20,-19456700659520)
                        (25,-24320875824400)
                        (30,-29185050989280)
                        (35,-34049226154160)
                        (40,-38913401319040)
                        (45,-43777576483920)
                        (50,-48641751648800)
                    };
                    \addplot coordinates {
                        (5,292862229381084)
                        (10,434852463631792)
                        (15,570475846800798)
                        (20,737825490819198)
                        (25,860718238823815)
                        (30,940754521446225)
                        (35,1062038363787050)
                        (40,1127781160335236)
                        (45,1185587487293437)
                        (50,1237044668474952)
                    };
                    \addplot coordinates {
                        (5,302387809568514)
                        (10,433265146600492)
                        (15,568888291277459)
                        (20,745760136185414)
                        (25,863891556048562)
                        (30,1018505467376564)
                        (35,1114397529527600)
                        (40,1243595912571978)
                        (45,1356917686795978)
                        (50,1438505671531397)
                    };
                    \addplot coordinates {
                        (5,292862229381084)
                        (10,439615017666611)
                        (15,579999984864317)
                        (20,680689964623044)
                        (25,830567187638336)
                        (30,989945779779292)
                        (35,1089013026329017)
                        (40,1192831304307391)
                        (45,1218906437648680)
                        (50,1308435574928259)
                    };
                    \addplot coordinates {
                        (5,302387809568514)
                        (10,447552145712824)
                        (15,632378624837750)
                        (20,758456796364679)
                        (25,905150488169182)
                        (30,1039132937342017)
                        (35,1177859366612789)
                        (40,1267392254011344)
                        (45,1393401240771311)
                        (50,1495605989719142)
                    };
                    \addplot coordinates {
                        (5,292862229381084)
                        (10,434852463631792)
                        (15,570475846800798)
                        (20,737825490819198)
                        (25,860718238823815)
                        (30,940754521446225)
                        (35,1062038363787050)
                        (40,1142060277409340)
                        (45,1187173821398126)
                        (50,1260840969614604)
                    };
                    \addplot coordinates {
                        (5,312696217497890)
                        (10,565002605927478)
                        (15,857723287379634)
                        (20,1129748942677279)
                        (25,1334295395262765)
                        (30,1579251153778012)
                        (35,1767865804266326)
                        (40,1996881068279606)
                        (45,2225851981990703)
                        (50,2401688802214620)
                    };
                \end{axis}
            \end{tikzpicture}           
\end{document}

答案1

这是你的原始情节:

在此处输入图片描述

我认为您想要编辑 pgfplots 自动在您的图上提及的比例因子。我在以下位置找到了示例代码:这个答案本网站,这可能会对你有所帮助。这可以通过使用以下两个代码来实现,这两个代码添加到

\begin{axis}[]

如果您想在轴上写下自己喜欢的比例因子,您可以使用以下命令:

ytick scale label code/.code={}

在此处输入图片描述

你可能有一个比例因子,如$10^15$或 你想要的任何东西.code={$10^15$}。你也可以使用一些公制前缀而不是幂数,例如Ppeta 和10^15Eexa 和10^18

如果您不想在绘图中添加任何缩放因子,请将里面的空间留空.code={},这样就不会打印任何内容。

另外,您可以使用

scaled y ticks={real:1000000000000000}

在此处输入图片描述

按照您的喜好缩放 y 轴值,但缩放数字的格式将与您原始绘图代码中的默认缩放格式相同。

事实上,另一种选择是在将数据放入 Latex 代码之前对其进行优化。如果您希望它们的值小于绘图中显示的值,则一个粗略的解决方案可能是先在电子表格或编程编译器中编辑数据,然后将其复制到绘图数据中。

以下问题也可能有助于解决您的问题:

相关内容