for i = 1:length(RVs)
for j=1:length(MVs)
load(data)% load some data.
sumRRE(j) = mean((RRE< 1e-10));
end
RREs(:,i) = sumRRE;
clear summRRE;
end
% in the end RREs is a matrix of 9-by-10
RV = [10:10:100]; % x-axis
MV = 0.1:0.1:0.9; % y- axis
imagesc(RV,MV,RREs);
colorbar()
O código a seguir funciona em Matlab. mas estou me perguntando se posso fazer o mesmo em látex, pois os gráficos de látex são muito melhores. Minha matriz RREs tem dimensão de 9 por 10. Abaixo está minha tentativa, mas não funciona. Aqui está umlinkpara o arquivo de dados para tentar. Desde já, obrigado.
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel={Missing Value Prop},
ylabel={Rendezvous Prop},
xtick={10, 20, ..., 100},
ytick={0.1, 0.2, ..., 0.9},
y dir=reverse,
colormap={mycolormap}{color=(white) color=(blue)},
colorbar,
point meta min=0,
point meta max=1,
]
\addplot[matrix plot*, mesh/rows=9] table [x index=0, y index=1, meta index=2] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}
Responder1
Você precisa especificar os valores xey na tabela, portanto, o formato da tabela deve ser x y C
em vez de uma matriz C (aqui sua matriz RREs). Adicionei algumas linhas ao seu código Matlab para transformar os dados no formato correto para látex.
(Não consegui executar seu código Matlab, pois há variáveis indefinidas, mas carregar seus dados vinculados me permitiu pular completamente o loop.)
load("data2.dat")
RREs = data2;
% in the end RREs is a matrix of 9-by-10
RV = 10:10:100; % x-axis
MV = 0.1:0.1:0.9; % y- axis
figure(1)
colormap(flipud(gray))
imagesc(RV,MV,RREs);
colorbar()
% Transform the data into table format for Latex
[X,Y] = meshgrid(RV,MV);
data_table = [reshape(X',[],1), reshape(Y',[],1), reshape(RREs',[],1)];
writematrix(data_table,"data_trafo.dat","Delimiter",'\t')
Com isso, seu código quase funciona bem. Eu apenas adicionei a opção point meta=explicit
para que o latex espere e use os dados numéricos fornecidos.
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel={Missing Value Prop},
ylabel={Rendezvous Prop},
xtick={10, 20, ..., 100},
ytick={0.1, 0.2, ..., 0.9},
y dir=reverse,
colormap={mycolormap}{color=(white) color=(blue)},
colorbar,
point meta min=0,
point meta max=1,
]
\addplot[matrix plot*, mesh/rows=9, mesh/cols=10,point meta=explicit] table [x index=0, y index=1, meta index=2] {data_trafo.dat};
\end{axis}
\end{tikzpicture}
\end{document}
Isso deve resultar em algo assim. Espero que isto seja o que procuras.