Tenho algumas curvas determinadas por alguns pontos. Preciso traçar a superfície que eles determinam. Ou seja, eu tenho isso
\begin{tikzpicture}[scale=0.8]
\begin{axis}[%
width=12cm,height=12cm,
xmin=0,
view={40}{10},
]
\addplot3 [blue]
table[row sep=crcr]{
1 0 -5.5829\\
1 5.0000 1.3534\\
1 10.0000 7.7874\\
1 15.0000 13.7943\\
1 20.0000 19.4479\\
1 25.0000 24.8223\\
1 30.0000 29.9933\\
1 35.0000 35.0408\\
1 40.0000 40.0512\\
1 45.0000 45.1203\\
1 50.0000 50.3570\\
1 55.0000 52.8128\\
1 60.0000 55.5201\\
1 65.0000 58.4550\\
1 70.0000 61.6084\\
1 75.0000 64.9836\\
1 80.0000 68.5942\\
1 85.0000 72.4631\\
1 90.0000 76.6207\\
1 95.0000 81.1053\\
1 100.0000 85.9621\\
1 105.0000 91.2436\\
1 110.0000 97.0097\\
1 115.0000 103.3281\\
1 120.0000 110.2751\\
1 125.0000 110.8469\\
1 130.0000 112.1175\\
1 135.0000 114.0816\\
1 140.0000 116.7429\\
1 145.0000 120.1141\\
1 150.0000 124.2169\\
1 155.0000 129.0815\\
1 160.0000 134.7475\\
};
\addplot3 [blue]
table[row sep=crcr]{
2 0 -5.3375\\
2 5.0000 1.5442\\
2 10.0000 7.9298\\
2 15.0000 13.8943\\
2 20.0000 19.5114\\
2 25.0000 24.8552\\
2 30.0000 30.0019\\
2 35.0000 35.0318\\
2 40.0000 40.0320\\
2 45.0000 45.0995\\
2 50.0000 50.3447\\
2 55.0000 52.7353\\
2 60.0000 55.3870\\
2 65.0000 58.2737\\
2 70.0000 61.3845\\
2 75.0000 64.7214\\
2 80.0000 68.2971\\
2 85.0000 72.1331\\
2 90.0000 76.2595\\
2 95.0000 80.7136\\
2 100.0000 85.5402\\
2 105.0000 90.7911\\
2 110.0000 96.5258\\
2 115.0000 102.8115\\
2 120.0000 109.7240\\
2 125.0000 110.2733\\
2 130.0000 111.5190\\
2 135.0000 113.4555\\
2 140.0000 116.0861\\
2 145.0000 119.4233\\
2 150.0000 123.4884\\
2 155.0000 128.3115\\
2 160.0000 133.9314\\
};
\addplot3 [blue]
table[row sep=crcr]{
3 0 -6.0748\\
3 5.0000 0.9575\\
3 10.0000 7.4763\\
3 15.0000 13.5574\\
3 20.0000 19.2753\\
3 25.0000 24.7045\\
3 30.0000 29.9213\\
3 35.0000 35.0058\\
3 40.0000 40.0445\\
3 45.0000 45.1332\\
3 50.0000 50.3808\\
3 55.0000 52.8484\\
3 60.0000 55.5586\\
3 65.0000 58.4873\\
3 70.0000 61.6252\\
3 75.0000 64.9753\\
3 80.0000 68.5508\\
3 85.0000 72.3737\\
3 90.0000 76.4738\\
3 95.0000 80.8881\\
3 100.0000 85.6606\\
3 105.0000 90.8424\\
3 110.0000 96.4915\\
3 115.0000 102.6739\\
3 120.0000 109.4633\\
3 125.0000 110.2664\\
3 130.0000 111.7478\\
3 135.0000 113.9048\\
3 140.0000 116.7442\\
3 145.0000 120.2812\\
3 150.0000 124.5397\\
3 155.0000 129.5523\\
3 160.0000 135.3603\\
};
\end{axis}
\end{tikzpicture}
Mas eu preciso disso
Como eu posso fazer? Obrigado.
Responder1
No primeiro exemplo reduzi bastante o seu código para apenas as cinco primeiras linhas de dados, pelo contrário, no segundo exemplo dobrei seus dados.
Mudei para um tipo de gráfico 3D ( surf
) e comecei a pesquisar no manual pgfplotshttp://mirrors.ctan.org/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf. A chave interruptora era mesh/rows=3
. Você pode ver uma melhoria nas figuras abaixo (da figura da esquerda para a do meio). Então descobri uma opção interessante faceted color=green
, mas que não está nos ajudando pois precisamos de linhas traçadas apenas em uma direção, veja a figura abaixo do lado direito. Talvez esse seja um recurso potencial para o dr. Feuersänger e seus colegas. Porque neste caso específico precisaríamos x faceted color
de and y faceted color
.
Anexo um exemplo, a linha principal é a linha número 9 que eu estava alterando. Coloquei um sinal de porcentagem no início da linha, antes faceted
, e não coloquei.
\documentclass{article}
\pagestyle{empty}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=12cm, height=12cm,
xmin=0,view={40}{10},]
\addplot3 [surf,
mesh/rows=3, faceted color=green, line width=2pt,
]
table {
1 0 -5.5829
1 5.0000 1.3534
1 10.0000 7.7874
1 15.0000 13.7943
1 20.0000 19.4479
2 0 -5.3375
2 5.0000 1.5442
2 10.0000 7.9298
2 15.0000 13.8943
2 20.0000 19.5114
3 0 -6.0748
3 5.0000 0.9575
3 10.0000 7.4763
3 15.0000 13.5574
3 20.0000 19.2753
};
\end{axis}
\end{tikzpicture}
\end{document}
Então chegou o momento certo para usar camadas de gráficos. Depois de desenhar o surf
gráfico, só precisamos colocar (poli)linhas nele. Como bônus de sorteio ativei a shader
opção. Esta estratégia de desenho ilustra o próximo código-fonte e uma prévia da figura. A única desvantagem é que precisei reorganizar seus dados e duplicá-los. Tenho certeza de que podemos otimizá-lo de alguma forma, mas estou deixando o gráfico como está para melhorias futuras.
\documentclass{article}
\pagestyle{empty}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\begin{document}
\tikzset{mystyle/.style={green, line width=3pt}}
\begin{tikzpicture}[scale=0.8]
\begin{axis}[width=12cm, height=12cm,
xmin=0,view={100}{55}, colorbar,
]
% The shaded area below green lines...
% Draw me first!
\addplot3 [surf, mesh/rows=3,
faceted color=none, % try % faceted color=green
shader=interp,
]
table[row sep=crcr]{
1 0 -5.5829\\
1 5.0000 1.3534\\
1 10.0000 7.7874\\
1 15.0000 13.7943\\
1 20.0000 19.4479\\
1 25.0000 24.8223\\
1 30.0000 29.9933\\
1 35.0000 35.0408\\
1 40.0000 40.0512\\
1 45.0000 45.1203\\
1 50.0000 50.3570\\
1 55.0000 52.8128\\
1 60.0000 55.5201\\
1 65.0000 58.4550\\
1 70.0000 61.6084\\
1 75.0000 64.9836\\
1 80.0000 68.5942\\
1 85.0000 72.4631\\
1 90.0000 76.6207\\
1 95.0000 81.1053\\
1 100.0000 85.9621\\
1 105.0000 91.2436\\
1 110.0000 97.0097\\
1 115.0000 103.3281\\
1 120.0000 110.2751\\
1 125.0000 110.8469\\
1 130.0000 112.1175\\
1 135.0000 114.0816\\
1 140.0000 116.7429\\
1 145.0000 120.1141\\
1 150.0000 124.2169\\
1 155.0000 129.0815\\
1 160.0000 134.7475\\
2 0 -5.3375\\
2 5.0000 1.5442\\
2 10.0000 7.9298\\
2 15.0000 13.8943\\
2 20.0000 19.5114\\
2 25.0000 24.8552\\
2 30.0000 30.0019\\
2 35.0000 35.0318\\
2 40.0000 40.0320\\
2 45.0000 45.0995\\
2 50.0000 50.3447\\
2 55.0000 52.7353\\
2 60.0000 55.3870\\
2 65.0000 58.2737\\
2 70.0000 61.3845\\
2 75.0000 64.7214\\
2 80.0000 68.2971\\
2 85.0000 72.1331\\
2 90.0000 76.2595\\
2 95.0000 80.7136\\
2 100.0000 85.5402\\
2 105.0000 90.7911\\
2 110.0000 96.5258\\
2 115.0000 102.8115\\
2 120.0000 109.7240\\
2 125.0000 110.2733\\
2 130.0000 111.5190\\
2 135.0000 113.4555\\
2 140.0000 116.0861\\
2 145.0000 119.4233\\
2 150.0000 123.4884\\
2 155.0000 128.3115\\
2 160.0000 133.9314\\
3 0 -6.0748\\
3 5.0000 0.9575\\
3 10.0000 7.4763\\
3 15.0000 13.5574\\
3 20.0000 19.2753\\
3 25.0000 24.7045\\
3 30.0000 29.9213\\
3 35.0000 35.0058\\
3 40.0000 40.0445\\
3 45.0000 45.1332\\
3 50.0000 50.3808\\
3 55.0000 52.8484\\
3 60.0000 55.5586\\
3 65.0000 58.4873\\
3 70.0000 61.6252\\
3 75.0000 64.9753\\
3 80.0000 68.5508\\
3 85.0000 72.3737\\
3 90.0000 76.4738\\
3 95.0000 80.8881\\
3 100.0000 85.6606\\
3 105.0000 90.8424\\
3 110.0000 96.4915\\
3 115.0000 102.6739\\
3 120.0000 109.4633\\
3 125.0000 110.2664\\
3 130.0000 111.7478\\
3 135.0000 113.9048\\
3 140.0000 116.7442\\
3 145.0000 120.2812\\
3 150.0000 124.5397\\
3 155.0000 129.5523\\
3 160.0000 135.3603\\
};
% Replacement for x faceted color and y faceted color. :-)
% Perhaps this is a feature for the developers?
\addplot3 [mystyle]
table[row sep=crcr]{
1 0 -5.5829\\
1 5.0000 1.3534\\
1 10.0000 7.7874\\
1 15.0000 13.7943\\
1 20.0000 19.4479\\
1 25.0000 24.8223\\
1 30.0000 29.9933\\
1 35.0000 35.0408\\
1 40.0000 40.0512\\
1 45.0000 45.1203\\
1 50.0000 50.3570\\
1 55.0000 52.8128\\
1 60.0000 55.5201\\
1 65.0000 58.4550\\
1 70.0000 61.6084\\
1 75.0000 64.9836\\
1 80.0000 68.5942\\
1 85.0000 72.4631\\
1 90.0000 76.6207\\
1 95.0000 81.1053\\
1 100.0000 85.9621\\
1 105.0000 91.2436\\
1 110.0000 97.0097\\
1 115.0000 103.3281\\
1 120.0000 110.2751\\
1 125.0000 110.8469\\
1 130.0000 112.1175\\
1 135.0000 114.0816\\
1 140.0000 116.7429\\
1 145.0000 120.1141\\
1 150.0000 124.2169\\
1 155.0000 129.0815\\
1 160.0000 134.7475\\
};
\addplot3 [mystyle]
table[row sep=crcr]{
2 0 -5.3375\\
2 5.0000 1.5442\\
2 10.0000 7.9298\\
2 15.0000 13.8943\\
2 20.0000 19.5114\\
2 25.0000 24.8552\\
2 30.0000 30.0019\\
2 35.0000 35.0318\\
2 40.0000 40.0320\\
2 45.0000 45.0995\\
2 50.0000 50.3447\\
2 55.0000 52.7353\\
2 60.0000 55.3870\\
2 65.0000 58.2737\\
2 70.0000 61.3845\\
2 75.0000 64.7214\\
2 80.0000 68.2971\\
2 85.0000 72.1331\\
2 90.0000 76.2595\\
2 95.0000 80.7136\\
2 100.0000 85.5402\\
2 105.0000 90.7911\\
2 110.0000 96.5258\\
2 115.0000 102.8115\\
2 120.0000 109.7240\\
2 125.0000 110.2733\\
2 130.0000 111.5190\\
2 135.0000 113.4555\\
2 140.0000 116.0861\\
2 145.0000 119.4233\\
2 150.0000 123.4884\\
2 155.0000 128.3115\\
2 160.0000 133.9314\\
};
\addplot3 [mystyle]
table[row sep=crcr]{
3 0 -6.0748\\
3 5.0000 0.9575\\
3 10.0000 7.4763\\
3 15.0000 13.5574\\
3 20.0000 19.2753\\
3 25.0000 24.7045\\
3 30.0000 29.9213\\
3 35.0000 35.0058\\
3 40.0000 40.0445\\
3 45.0000 45.1332\\
3 50.0000 50.3808\\
3 55.0000 52.8484\\
3 60.0000 55.5586\\
3 65.0000 58.4873\\
3 70.0000 61.6252\\
3 75.0000 64.9753\\
3 80.0000 68.5508\\
3 85.0000 72.3737\\
3 90.0000 76.4738\\
3 95.0000 80.8881\\
3 100.0000 85.6606\\
3 105.0000 90.8424\\
3 110.0000 96.4915\\
3 115.0000 102.6739\\
3 120.0000 109.4633\\
3 125.0000 110.2664\\
3 130.0000 111.7478\\
3 135.0000 113.9048\\
3 140.0000 116.7442\\
3 145.0000 120.2812\\
3 150.0000 124.5397\\
3 155.0000 129.5523\\
3 160.0000 135.3603\\
};
\end{axis}
\end{tikzpicture}
\end{document}