我想创建一个具有预定义颜色的图,并通过样条曲线连接各点。
两种情况都不会发生。颜色系列未应用(所有线条均为黑色),样条线也未应用于曲线。
\documentclass[]{scrbook}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.patchplots}
\definecolor{colorseriesRGB1}{RGB}{0, 0, 192}
\definecolor{colorseriesRGB2}{RGB}{192, 0, 0}
\definecolor{colorseriesRGB3}{RGB}{0 , 128, 0}
\definecolor{colorseriesRGB4}{RGB}{192, 0, 192}
\pgfplotscreateplotcyclelist{colorseries-rgb}{
{colorseriesRGB1},
{colorseriesRGB2},
{colorseriesRGB3},
{colorseriesRGB4},
}
\begin{document}
\pgfplotsset{width=0.8\textwidth, height=0.6\textwidth}
\begin{tikzpicture}
\begin{axis}[cycle list name=colorseries-rgb]
\addplot[samples = 10,patch type=quadratic spline] {x^2 - x +4};
\end{axis}
\end{tikzpicture}
\end{document}
编辑:
我的原始代码使用的是数据表。如果我添加选项,mesh,patch,patch type=quadratic spline
那么图看起来就完全错了
\begin{tikzpicture}
\begin{axis}[scale only axis,
every axis plot/.append
style={line width=1.5pt},
mark=none,
style=solid,
enlargelimits=false, ymax = 3.5,
cycle list name=colorseries-office,
% smooth,
mesh,patch,patch type=quadratic spline
]
% column with header "y1"
\addplot+ table[x=x1,y=y1] from \datatable;
\addplot+ table[x=x1,y=y2] from \datatable;
\addplot+ table[x=x1,y=y3] from \datatable;
\addplot+ table[x=x1,y=y4] from \datatable;
\end{axis}
\end{tikzpicture}
smooth
然而,尽管我不知道它真正做了什么,这个选项看起来像我想要的:
答案1
如果没有可选参数,则只需使用
\addplot {x^2 - x +4};
将继承您指定的正确样式。但是,如果您希望覆盖某些参数但保留其他方面(正如你在代码中所做的那样),那么你必须使用\addplot+[...
\addplot+[samples = 10] {x^2 - x +4};
它告诉pgfplots
使用中指定的样式cyclelist
,但更改您指定的选项。
更多示例请参阅第 4.6.7 节。
关于quadratic spline
,参考第 5.6.1 节,
二次样条实际上不过是使用二次多项式的分段拉格朗日插值:它需要序列“(左端),(右端),(中间)”中的三个点,并使用二次多项式对这三个点进行插值。
因此,对于您的示例,您可以使用类似
% left, right, middle
\addplot+[patch,mesh,patch type=quadratic spline]coordinates{(-5,33)(5,23)(0,3)};
看起来您目前正在尝试输入一个函数来帮助找到坐标 - 我不知道如何做到这一点,但也许这个网站上的一位专家会知道。