I need to have both line and bar graph in the graph. This link refers to stacked version of the graph that I need. Is it possible to convert it to unstacked version?
In this picture, I do not need "Near" and "Here" bars.
Thank you.
I need to have both line and bar graph in the graph. This link refers to stacked version of the graph that I need. Is it possible to convert it to unstacked version?
In this picture, I do not need "Near" and "Here" bars.
Thank you.
Change ybar stacked to ybar in the axis options, and remove the second and third \addplot in the first axis. In the second axis you can set xtick=\empty.
% Code based on https://tex.stackexchange.com/questions/166769/line-graph-superimposed-on-grouped-stacked-bar-graph-with-pgfplots/166797#166797
\documentclass{article}
\usepackage{pgfplots}
\makeatletter
\newcounter{groupcount}
\pgfplotsset{
draw group line/.style n args={5}{
after end axis/.append code={
\setcounter{groupcount}{0}
\pgfplotstableforeachcolumnelement{#1}\of\datatable\as\cell{%
\def\temp{#2}
\ifx\temp\cell
\ifnum\thegroupcount=0
\stepcounter{groupcount}
\pgfplotstablegetelem{\pgfplotstablerow}{[index]0}\of\datatable
\coordinate [yshift=#4] (startgroup) at (axis cs:\pgfplotsretval,0);
\else
\pgfplotstablegetelem{\pgfplotstablerow}{[index]0}\of\datatable
\coordinate [yshift=#4] (endgroup) at (axis cs:\pgfplotsretval,0);
\fi
\else
\ifnum\thegroupcount=1
\setcounter{groupcount}{0}
\draw [
shorten >=-#5,
shorten <=-#5
] (startgroup) -- node [anchor=north] {#3} (endgroup);
\fi
\fi
}
\ifnum\thegroupcount=1
\setcounter{groupcount}{0}
\draw [
shorten >=-#5,
shorten <=-#5
] (startgroup) -- node [anchor=north] {#3} (endgroup);
\fi
}
}
}
\makeatother
\pgfplotstableread{
1 19.178 26.027 8.219 6.849 39.726 1
2 54.795 21.918 4.110 6.849 12.329 1
3 28.767 16.438 6.849 8.219 39.726 1
4 63.014 2.740 2.740 2.740 28.767 2
5 90.411 1.370 6.849 0.000 1.370 2
6 15.068 2.740 16.438 8.219 57.534 2
7 67.123 0.000 0.000 1.000 32.877 3
8 72.603 6.849 5.479 5.000 15.068 3
9 56.164 12.329 6.849 4.110 20.548 3
10 50.685 4.110 8.219 1.370 35.616 3
}\datatable
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ylabel=label,
xtick=data,
xticklabels={S1,S2,S3,S4,S5,S6,S7,S8,S9,S10},
enlarge y limits=false,
enlarge x limits=0.1,
ymin=0,ymax=100,
ybar, % <------ change from ybar stacked to ybar
bar width=10pt,
legend style={
font=\footnotesize,
cells={anchor=west},
legend columns=5,
at={(0.3,-0.20)},
anchor=north,
/tikz/every even column/.append style={column sep=0.2cm}
},
]
\addplot table[x index=0,y index=1] \datatable;
%\addplot table[x index=0,y index=2] \datatable; % <-- remove this
%\addplot table[x index=0,y index=3] \datatable; % <-- and this
\legend{Far,Near,Here}
\end{axis}
\begin{axis}[
ylabel=label,
xtick=\empty, % change to \empty
% xticklabels={S1,S2,S3,S4,S5,S6,S7,S8,S9,S10},
enlarge y limits=false,
enlarge x limits=0.1,
ymin=0,ymax=100,
legend style={
font=\footnotesize,
cells={anchor=west},
legend columns=5,
at={(0.71,-0.20)},
anchor=north,
/tikz/every even column/.append style={column sep=0.2cm}
},
draw group line={[index]6}{1}{X Group}{-3.5ex}{7pt},
draw group line={[index]6}{2}{Y Group}{-3.5ex}{7pt},
draw group line={[index]6}{3}{Z Group}{-3.5ex}{7pt}
]
\addplot+[forget plot] table[x index=0,y index=4, restrict x to domain=0:3] \datatable;
\addplot+[forget plot] table[x index=0,y index=4, restrict x to domain=4:6] \datatable;
\addplot+ table[x index=0,y index=4, restrict x to domain=7:10] \datatable;
\legend{There}
\end{axis}
\end{tikzpicture}
\end{document}
\addplot, there won't be any difference betweenybarandybar stackedI think, so just removing the last two\addplots would do the same. – Torbjørn T. Jun 28 '18 at 21:48