我正在尝试创建一个底部有三个 x 轴的图表。我找到了一个可以创建 3 个轴的代码,但是当我尝试绘制 csv 文件中的数据时,我收到一条错误消息:
!软件包 pgfkeys 错误:我不知道您传递了“逗号”的键“/tikz/col sep”,我将忽略它。也许您拼错了。
在其他设置下绘制 csv 文件时我没有遇到任何问题,但不知何故我无法让它工作。我做错了什么?这是文件: 测试.csv
这是我的代码:
\begin{document}
\usepackage{pgfplots}
\begin{tikzpicture}
\pgfplotsset{
every axis x label/.style={
at={(ticklabel* cs:1.05)},
yshift = -7.5pt,
anchor=west,},
width=14cm,
height=7cm,
every axis y label/.style={at={(current axis.above origin)},
anchor=north east,
yshift = 1cm,} }
\begin{axis}[
scaled y ticks = false,
y tick label style={/pgf/number format/fixed,
/pgf/number format/1000 sep = \thinspace},
xmin=0,xmax=3,
xlabel={$Re$},
ylabel={$\delta ~\text{[mm]}$},
ymin=0, ymax=2,
ymajorgrids=true, xmajorgrids=true,
axis y line*=left, axis x line*=bottom]
\addplot[color=red,smooth,thick, col sep=comma] {test.csv};
\end{axis}
\begin{axis}[
xmin=0,xmax=70,%--- CF,
hide y axis,
axis x line*=none,
ymin=0, ymax=2,
xlabel={$\dot{V} ~[\text{L} / \text{h}]$},
x label style={yshift=-0.8cm},
x tick label style={yshift=-0.8cm}
]
\addplot[color=blue,smooth,thick] coordinates {
(2.28,1.09068)
(1.67,0.97372)
(1.11,0.832298376)
(0.55,0.634618222)
(0.27,0.46422) };
\end{axis}
\begin{axis}[
xmin=0,xmax=35,
hide y axis,
axis x line*=none,
ymin=0, ymax=2,
xlabel={$\dot{V}/A ~[\text{m}^3 / \text{h} \text{m}^2]$},
x label style={yshift=-1.6cm},
x tick label style={yshift=-1.6cm}
]
\addplot[color=black,thick] coordinates {
(2.28,1.09068)
(1.67,0.97372)
(1.11,0.832298376)
(0.55,0.634618222)
(0.27,0.46422) };
\end{axis}
\end{tikzpicture}
\end{document}
答案1
我认为,这包含对您问题的答案和 MWE。您的问题的答案是您应该尝试
\addplot[color=red,smooth,thick] table[col sep=comma,header=false,x index=0,y index=1] {test.csv};
如果您的test.csv
数据格式中包含逗号分隔符,则此方法有效。这是因为col sep=comma
对于表格来说,这是一个有效选项,但对于绘图来说,则不是。注意我也增加了xmax
该情节,因为按照你的设置,整个情节会被剪掉。
为了使其成为 MWE,我
- 添加了文档类,
- 已加载
amsmath
(因为你正在使用\text
), - 移至
\usepacage{pgfplots}
上方\begin{document}
, - 通过文件内容添加
test.csv
到 MWE 以便于测试。
我没有更改任何细节,因为我不知道它Re
代表什么。如果它代表real part
,我不会在数学模式中设置它。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{filecontents}
\begin{filecontents*}{test.csv}
70.4,1.012015504
52.8,0.919477106
35.2,0.803237238
17.6,0.637529818
8.8,0.506007752
\end{filecontents*}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{
every axis x label/.style={
at={(ticklabel* cs:1.05)},
yshift = -7.5pt,
anchor=west,},
width=14cm,
height=7cm,
every axis y label/.style={at={(current axis.above origin)},
anchor=north east,
yshift = 1cm,} }
\begin{axis}[
scaled y ticks = false,
y tick label style={/pgf/number format/fixed,
/pgf/number format/1000 sep = \thinspace},
xmin=0,xmax=75,
xlabel={$Re$},
ylabel={$\delta ~\text{[mm]}$},
ymin=0, ymax=2,
ymajorgrids=true, xmajorgrids=true,
axis y line*=left, axis x line*=bottom]
\addplot[color=red,smooth,thick] table[col sep=comma,header=false,
x index=0,y index=1] {test.csv};
\end{axis}
\begin{axis}[
xmin=0,xmax=70,%--- CF,
hide y axis,
axis x line*=none,
ymin=0, ymax=2,
xlabel={$\dot{V} ~[\text{L} / \text{h}]$},
x label style={yshift=-0.8cm},
x tick label style={yshift=-0.8cm}
]
\addplot[color=blue,smooth,thick] coordinates {
(2.28,1.09068)
(1.67,0.97372)
(1.11,0.832298376)
(0.55,0.634618222)
(0.27,0.46422) };
\end{axis}
\begin{axis}[
xmin=0,xmax=35,
hide y axis,
axis x line*=none,
ymin=0, ymax=2,
xlabel={$\dot{V}/A ~[\text{m}^3 / \text{h} \text{m}^2]$},
x label style={yshift=-1.6cm},
x tick label style={yshift=-1.6cm}
]
\addplot[color=black,thick] coordinates {
(2.28,1.09068)
(1.67,0.97372)
(1.11,0.832298376)
(0.55,0.634618222)
(0.27,0.46422) };
\end{axis}
\end{tikzpicture}
\end{document}