
또 나야 :)
를 이용하여 플롯을 만들려고 합니다 pgfplots
. 그러나 나머지와 다르게 보이려면 단일 마커가 필요합니다. 예를 들어 아래 예에서는 1970년의 'a' 마커와 1990년의 'b' 마커가 x가 되고 나머지는 모두 공이 되기를 원합니다( *). (색상으로 구별하는 방법을 알려주신다면 저도 마찬가지로 기쁠 것입니다. 무슨 뜻인지 이해해 주시길 바랍니다.) 이 단일 마커를 어떻게 변경합니까? 제가 찾지 못한 스레드가 이미 있다면 알려주시기 바랍니다.
내 예는 다음과 같습니다
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[width=\textwidth, xlabel = year,%\,/\,Tsd. Tonnen,
xmin = 1965, xmax = 2015,
xtick={1960, 1970, 1980, 1990, 2000, 2010},
x tick label style={/pgf/number format/1000 sep=},
ylabel = example,
ymin = 1000, ymax = 5000,
y tick label style={/pgf/number format/1000 sep=},]
\addplot
coordinates {
(1960, 1650)
(1970, 2550)
(1980, 4050)
(1990, 4550)
(2000, 3550)
(2010, 3750)
};
\addplot
coordinates {
(1960, 1600)
(1970, 2500)
(1980, 4000)
(1990, 4500)
(2000, 3500)
(2010, 3700)
};
\legend{a, b}
\end{axis}
\end{tikzpicture}
\vspace*{0.4cm}
\caption[Example.]{Example.}
\end{figure}
그리고 그림은 다음과 같습니다.
미리 감사드립니다! :)
답변1
왜냐하면 나는 당신이 당신의 두 가지 기능을 결합하고 싶어한다고 생각했기 때문입니다.다른 질문그리고 이건 제가 그걸 시작으로 사용했어요.
달성하려는 목표를 달성하려면 이 scatter/classes
기능을 사용할 수 있습니다. 작동 방식에 대해서는 코드의 주석을 살펴보시기 바랍니다.
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{
% I assume you *never* want to use the `1000 sep',
% so remove it *everywhere* with this one call
/pgf/number format/1000 sep=,
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=1965,
xmax=2015,
xlabel=year,
xtick={1960,1970,...,2010},
ymin=1000,
ymax=5000,
ylabel=example,
% -----------------------------------------------------------------
% make use of the "scatter" feature and say that the "classes" are
% given explicitly in symbolic notation
scatter,
point meta=explicit symbolic,
% define as many classes as you need and provide the style to each class
% (so the "non-default" classes can be either noticed, I changed
% also changed the marker size)
scatter/classes={
a={}, % empty argument means: use the default style
b={mark=triangle*,orange,mark size=5pt},
c={mark=x,green,mark size=5pt}
},
]
% I changed your coordinates to a table, because than the scatter
% classes are to add much easier
%
% Also I just used an empty line to "break" the connecting line
% (instead of adding a dummy coordinate with a `NaN' value)
\addplot table [x=year,y=value,meta=label] {
year value label
1960 1650 a
1970 2550 b
1980 4050 a
1990 4550 a
2000 3550 a
2010 3750 a
};
\addplot table [x=year,y=value,meta=label] {
year value label
1960 1600 a
1970 2500 a
1980 4000 a
1990 4500 c
2000 3500 a
2010 3700 a
};
% we have to adjust the legend, because in `scatter/classes' this
% works a bit different
\legend{
A, % class "a" of first `\addplot'
, % class "b" of first `\addplot' <-- you don't want to show
, % class "c" of first `\addplot' <-- you don't want to show
B, % class "a" of second `\addplot'
% , % ...
% , % ...
}
\end{axis}
\end{tikzpicture}
\end{document}