我从 .tikz 文件加载了示例数据。
该文件是使用函数从 MATLAB 导出的matlab2tikz
。
文件中有三个图,按照我设置的顺序排列。
当我在 TexStudio 中导入文件并绘制它们时,其顺序与 MATLAB 的顺序不一样。
当我改变了来回的顺序时\addplot
,如果没有标记,它就会改变。
但如果有标记,即使它\addplot
在订单的底部,它也会出现在顶部。(您可以从下图中看到差异)
有时,我有 2 个 Y 轴,同时我想要一个box('on')
在 MATLAB 中起作用的框。
我想做的是
\addplot
1)当情节有标记时,找到一种方法来改变情节的语法顺序。
2) 即使\begin{axis}
包含也要有一个框axis y line*=left
。(下图右侧没有实线。)
让我附上我在 .tikz 文件中使用的代码。
\begin{tikzpicture}
\begin{axis}[width=5cm, height=3cm, at={(0.307in,0.179in)},
scale only axis, xmin=0, xmax=10, ymin=0, ymax=20,
grid=both,axis y line*=left]
\addplot [color=red, line width=1.0pt]
table[row sep=crcr]{%
0 11.281\\
1 12.173\\
2 13.379\\
3 17.849\\
4 16.629\\
5 10.586\\
6 17.863\\
7 12.878\\
8 16.176\\
9 18.569\\
10 13.865\\
};
\addplot [color=white!60!black, line width=1.0pt, mark size=0.7pt,
mark=triangle, mark options={solid, white!60!black}]
table[row sep=crcr]{%
0 14.692\\
1 12.988\\
2 13.286\\
3 18.048\\
4 13.686\\
5 5.874\\
6 11.792\\
7 14.119\\
8 12.448\\
9 16.188\\
10 8.179\\
};
\addplot [color=black, line width=1.0pt]
table[row sep=crcr]{%
0 17.624\\
1 1.057\\
2 16.775\\
3 12.581\\
4 13.404\\
5 14.429\\
6 14.062\\
7 17.105\\
8 13.163\\
9 12.295\\
10 9.593\\
};
\end{axis}
\end{tikzpicture}
答案1
可plotcyclelist
用于控制每个图的格式。 内置了几个,pgfplots
例如color
、exotic
和black white
,或者您可以使用 制作自己的图\pgfplotscreateplotcyclelist {cycle list name}{cycle list}
,其中循环列表指定线条和标记颜色、形状等。有关详细信息,请参阅手册的第 4.7.7 节。
要获得实心的第二个 y 轴,请更改axis y line*=left
为axis lines=box
。
我添加了line join=bevel,
它以改进线条在坐标处的连接方式。
这是 MWE:
\documentclass[tikz,border=3pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{
compat=1.15,
}
\pgfplotscreateplotcyclelist{set1}{% <--
{color=red,mark=square*},
{color=white!60!black,mark=triangle*},
{color=black,mark=diamond*},
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=5cm, height=3cm, at={(0.307in,0.179in)},
scale only axis, xmin=0, xmax=10, ymin=0, ymax=20,
grid=both,
every axis plot/.append style={line width=1pt},
mark size=0.7pt,
mark options={solid},
line join=bevel, %<--
axis lines=box, %<--
cycle list name=set1 %<--
]
\addplot
table[row sep=crcr]{%
0 11.281\\
1 12.173\\
2 13.379\\
3 17.849\\
4 16.629\\
5 10.586\\
6 17.863\\
7 12.878\\
8 16.176\\
9 18.569\\
10 13.865\\
};
\addplot
table[row sep=crcr]{%
0 14.692\\
1 12.988\\
2 13.286\\
3 18.048\\
4 13.686\\
5 5.874\\
6 11.792\\
7 14.119\\
8 12.448\\
9 16.188\\
10 8.179\\
};
\addplot
table[row sep=crcr]{%
0 17.624\\
1 1.057\\
2 16.775\\
3 12.581\\
4 13.404\\
5 14.429\\
6 14.062\\
7 17.105\\
8 13.163\\
9 12.295\\
10 9.593\\
};
\end{axis}
\end{tikzpicture}
\end{document}
结果如下: