通常,当颜色条附加到图表时,颜色条会根据 y 轴上的值显示颜色变化。有没有办法根据 x 轴值显示颜色变化?例如,在颜色条中,您可以看到颜色如何根据毫升变化?
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[italian]{babel}
\usepackage[
a4paper,
margin=15mm,
bindingoffset=2mm,
heightrounded,
]{geometry}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{float}
\usepackage{pgfplots}
\usepackage{xcolor}
\usepgfplotslibrary{external}
\tikzexternalize
\pgfplotsset{width=7cm,compat=1.14}
\begin{document}
\begin{flushleft}
\begin{tikzpicture}
\begin{axis}[
colorbar,
width=12cm,
xmin=0, xmax=21,
ymin=0, ymax=14,
xlabel=ml,
ylabel=pH,
xmajorgrids=true,
ymajorgrids=true,
grid style=dashed,
ytick={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14},
xtick={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20},
]
\pgfplotsset{
colormap={redblue}{color(0pt)=(white); color(62pt)=(white); color(63pt)=(magenta); color(100pt)=(magenta)}
}
\addplot+[scatter,color=black,ultra thick]
coordinates {
(1,3.61)(2,3.99)(3,4.16)(4,4.33)
(5,4.52)(6,4.64)(7,4.80)(8,4.91)(9,5.06)(10,5.24)(10.5,5.38)(11,5.49)(11.5,5.67)(12,5.82)(12.2,5.99)(12.4,6.09)(12.6,6.46)(12.8,6.98)(13,7.35)(13.2,10.92)(13.4,11.22)(13.6,11.37)(13.8,11.50)(14,11.58)
(14.5,11.78)(15,11.83)(15.5,11.91)(16,11.97)(17,12.08)(18,12.13)(19,12.18)(20,12.22)
};
\end{axis}
\end{tikzpicture}
\end{flushleft}
\end{document}
答案1
tikz
这可以通过使用选项来实现point meta=x
,您可以将其与 之后的其他选项放在一起\begin{axis}
。
如果你还希望颜色条水平位于X-axis,您可以使用该选项colorbar horizontal
代替colorbar
。