我正在使用 Python 绘制下图并获得此渲染:
这里,Python 自动在 y 轴上添加了一个常数值偏移量 (+9.192682e9),以便更容易读取数据。
现在,我尝试使用 tikz 获得相同的渲染。但是,当我绘制数据时,我得到了一条平坦的曲线。
您是否有解决方案将乘数因子(.10^9)更改为常数值偏移量(+9.192682e9),就像在 Python 中所做的那样?
这是基本的 tikz 图形:
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots,dateplot}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\definecolor{darkblue}{RGB}{0,0,139}
\definecolor{lightgray204}{RGB}{204,204,204}
\begin{axis}[
height=7cm,
legend cell align={left},
legend style={
fill opacity=0.8,
draw opacity=1,
text opacity=1,
at={(0.03,0.97)},
anchor=north west,
draw=lightgray204
},
tick align=outside,
tick pos=left,
width=12cm,
x grid style={lightgray},
xlabel={Puissance laser ($\unit{\micro\watt}$)},
xlabel={b},
xmajorgrids,
xtick style={color=black},
y grid style={lightgray},
ylabel={Fréquence d'horloge ($\unit{\Hz}$)},
ylabel={a},
ymajorgrids,
ytick style={color=black},
]
\addplot [semithick, darkblue, mark=*, mark size=3, mark options={solid}, only marks]
table {%
165 9192682374.87676
149.62 9192682355.34463
123.45 9192682316.82627
91 9192682257.36819
63.08 9192682193.09079
42.1 9192682136.36608
28.39 9192682100.67402
18.61 9192682071.54598
};
\addlegendentry{$P_{W}=-7 dBm$}
\end{axis}
\end{tikzpicture}
\end{document}
答案1
我可以部分满足您的请求,但是存在一些相关的数字问题。
让我先展示一下我的解决方案(请注意,为了便于阅读,我将其精简为最相关的部分。对于 MWE,您也应该这样做。)
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
clip = false,
]
\addplot [
only marks,
] table[
x index = 0,
y expr=\thisrowno{1}-9192682071.00000,
]{%
165 9192682374.87676
149.62 9192682355.34463
123.45 9192682316.82627
91 9192682257.36819
63.08 9192682193.09079
42.1 9192682136.36608
28.39 9192682100.67402
18.61 9192682071.54598
};
\node [
% draw, % if you want to see the exact placement of the node, uncomment this
inner sep = 0pt,
anchor = south west,
] at (rel axis cs:0, 1) {\small +9.192682071e9};
\end{axis}
\end{tikzpicture}
\end{document}
编译为:
我的解决方案是在 期间使用y expr=<expression>
表的键\addplot
,并手动减去偏移值。另外,手动将具有偏移值的节点放置在西北轴角。
这问题这个输出看起来根本不像您提供的数据和屏幕截图,在于所提供的数据:pgfplots 背后的引擎无法处理这些大数字,并且似乎以某种方式默默地删除了其中的部分。
我目前不知道如何解决这个问题,但如果其他人有想法,他们可能会扩展这个部分答案。
如果您恰好控制着数据,并且不介意在 TeX 之外编辑它们,那么这将是一个快速而肮脏的解决方案,但我想您想明确保留原始数据,这是一种很好的做法。