Ich möchte die obere Grenze des Diagramms schattieren, für das der Code unten angegeben ist. Ihre Hilfe wird sehr geschätzt. Ich habe keine bestimmte Funktion, sondern bestimmte Koordinaten, die durch eine Linie verbunden sind. Ich würde gerne den oberen Bereich schattieren, der durch diese Koordinaten begrenzt wird.
\begin{figure}[h]
\centering
\begin{tikzpicture}[scale=0.7]
\begin{axis}[
xlabel={Policy Importance ($D$)},
ylabel={Optimal voting Rule $r_{1}*(D)$},
xmin=1, xmax=100,
ymin=50, ymax=100,
xtick={1,5, 10, 20, 30, 45, 55,70, 80, 90, 100},
ytick={50,67,76,81,86,91,96,100},
legend pos=outer north east,
ymajorgrids=true,
xmajorgrids=true,
grid style=dashed,
]
\addplot[
color=blue,
mark=*,
]
coordinates {
(1,51)(2,67)(3,76)(4,81)(6,86)(10,91)(20,96)(50,99)(100,100)
};
\end{axis}
\end{tikzpicture}
\caption{Optimal supermajority rule as a function of policy
importance for continuous decisions.}
\end{figure}
Antwort1
Da der Bereich in diesem speziellen Fall durch die Achse begrenzt wird, können Sie eine zusätzliche Plot-Direktive verwenden.
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}[scale=0.7]
\begin{axis}[
xlabel={Policy Importance ($D$)},
ylabel={Optimal voting Rule $r_{1}*(D)$},
xmin=1, xmax=100,
ymin=50, ymax=100,
xtick={1,5, 10, 20, 30, 45, 55,70, 80, 90, 100},
ytick={50,67,76,81,86,91,96,100},
legend pos=outer north east,
ymajorgrids=true,
xmajorgrids=true,
grid style=dashed,
]
\addplot[shade,
top color=blue!10,
bottom color=blue,
draw=blue,
mark=*,
]
coordinates {
(1,51)(2,67)(3,76)(4,81)(6,86)(10,91)(20,96)(50,99)(100,100)
} -| (rel axis cs:0,0);
\end{axis}
\end{tikzpicture}
\end{document}