Como selecionar um intervalo de dados no tikz-pgf?

Como selecionar um intervalo de dados no tikz-pgf?

Este é um subconjunto da minha tabela que desejo usar para criar um gráfico de barras empilhadas:

insira a descrição da imagem aqui

É possível selecionar as colunas A a F para as duas primeiras linhas e depois selecionar a coluna G para as outras linhas para criar um gráfico de barras empilhadas?

Este é o meu MWE:

\begin{tikzpicture}
\pgfplotstableread{ % Read the data into a table macro
Label A B C D E F G
Yes 0.24    0.92    0.52    0.96    0.52    0.24 nan
No 0.76 0.08    0.48    0.04    0.48    0.76 nan
High nan nan nan nan nan nan 0.08
Medium nan nan nan nan nan nan 0.4
Low nan nan nan nan nan nan 0.52
}\datatable

\pgfplotstabletranspose[string type, colnames from=Label, input colnames to=Label]\datatabletransposed{\datatable}

\begin{axis}[
    xbar stacked, % Stacked horizontal bars
    xmin=0, % Start x axis at 0
    ytick=data, % Use as many tick labels as y coordinates
    yticklabels from table={\datatabletransposed}{Label}, % Get the labels from the Label column of the \datatable
    legend style={at={(0,0)}, anchor=north east,at={(axis description cs:0,-0.1)}}]
]
\addplot [fill=green!70!blue] table [x=Yes, y expr=\coordindex] {\datatabletransposed};
\addplot [fill=red!70!white] table [x=No, y expr=\coordindex] {\datatabletransposed};
\legend{Yes, No}
\end{axis}
\end{tikzpicture}

Responder1

Usar nan ou NaN não é uma boa ideia para dados ausentes, pelo menos para um gráfico de barras empilhadas.

\documentclass[multi=tikzpicture]{standalone}
\usepackage{pgfplots,pgfplotstable}
\begin{document}


\pgfplotstableread{% Read the data into a table macro
Label A B C D E F G
Yes 0.24    0.92    0.52    0.96    0.52    0.24 0
No 0.76 0.08    0.48    0.04    0.48    0.76 0
High 0 0 0 0 0 0 0.08
Medium 0 0 0 0 0 0 0.4
Low 0 0 0 0 0 0 0.52
}\datatable

\pgfplotstabletranspose[string type, colnames from=Label, input colnames to=Label]\datatabletransposed{\datatable}

%\begin{tikzpicture}
%\node{\pgfplotstabletypeset[string type]\datatabletransposed};
%\end{tikzpicture}

\begin{tikzpicture}
\begin{axis}[
    xbar stacked, % Stacked horizontal bars
    xmin=0, % Start x axis at 0
    ytick=data, % Use as many tick labels as y coordinates
    yticklabels from table={\datatabletransposed}{Label}, % Get the labels from the Label column of the \datatable
    legend style={at={(0,0)}, anchor=north east,at={(axis description cs:0,-0.1)}}]
\addplot [fill=green!70!blue] table [x=Yes, y expr=\coordindex] {\datatabletransposed};
\addplot [fill=red!70!white] table [x=No, y expr=\coordindex] {\datatabletransposed};
\addplot [fill=green!70!blue] table [x=High, y expr=\coordindex] {\datatabletransposed};
\addplot [fill=red!70!white] table [x=Medium, y expr=\coordindex] {\datatabletransposed};
\addplot [fill=yellow] table [x=Low, y expr=\coordindex] {\datatabletransposed};
\legend{Yes, No}
\end{axis}
\end{tikzpicture}

\end{document} 

demonstração

informação relacionada