我想用 pgfplots 绘制一个数据集。在我的数据集中,0 < x < 1,并且所有有趣的事情都发生在 x 的值接近 1 时。具体来说,有趣的点发生在 x 的减半间隔处:0.1、0.15、0.175 等等。
因此,我想做一些与对数刻度图相反的事情:使用自定义函数指定沿 x 轴的进展,以便我感兴趣的 x 坐标以规则的间隔表示。就像我在间隔加倍的情况下对对数刻度所做的那样。
我知道先前的答案,但我找不到适合我的情况的函数。我想我应该使用该x coord trafo/.code
选项,但哪个参数适合我的情况?
有什么建议吗?提前谢谢您。
理想情况下,我希望 x 轴显示如下:
=== 0 === 0.5 === 0.75 === 0.875 === 等等。
对于像这样的简单数据集:
0.10 1
0.20 1
0.30 1
0.40 1
0.50 1
0.60 2
0.70 2
0.75 2
0.80 4
0.85 4
0.875 8
0.900 8
目前这是我的代码,没有获得预期的结果:
\documentclass{standalone}
\usepackage{standalone}
\usepackage{pgfplots}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{xfp}
\usepackage{ifthen}
\pgfplotstableread{
0.10 1
0.20 1
0.30 1
0.40 1
0.50 1
0.60 2
0.70 2
0.75 2
0.80 4
0.85 4
0.875 8
0.900 8
}\dataset
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=1,
scaled x ticks=false,
x coord trafo/.code = {\pgfmathparse{\ifthenelse{#1==0}{1-(1/#1)}{0}}\pgfmathresult},
x coord inv trafo/.code = {\pgfmathparse{\ifthenelse{#1==0}{1-(1/#1) }{0}}\pgfmathresult},
scaled y ticks=false,
]
\addplot table [x index = 0 , y index = 1 , col sep=comma]\dataset;
\end{axis}
\end{tikzpicture}
\end{document}