- Questo topic ha 1 risposta, 2 partecipanti ed è stato aggiornato l'ultima volta 2 anni, 5 mesi fa da .
-
Topic
-
Ciao a tutti.
Ho uno strano problema con pgfplot che ho risolto, ma volevo un vostro parere.
Devo generare una superficie per punti con pgfplot, al primo tentativo invece che una superficie, è venuto un grafico, in 3D, che sembra una spezzata che congiunge i punti (o la traiettoria di uno sciatore). Non capivo l’errore e ho cercato un po’ in rete e in un forum ho trovato un post che mi ha suggerito quella che poi è stata la soluzione. I dati, nel file (txt), vengono raggruppati a blocchi con una riga di spazio, ad esempio:
3 65 5.44233
4 65 7.25644
5 65 9.07055
6 65 10.88466
7 65 12.69877
8 65 14.51288
9 65 16.32699
10 65 18.14113 75 5.383494
4 75 7.177992
5 75 8.97249
6 75 10.766988
7 75 12.561486
8 75 14.355984
9 75 16.150482
10 75 17.94498
e così via.
Finché la riga vuota non c’era il grafico era una spezzata, quando ho inserito questa riga è venuta fuori la superficie che volevo.
Ho allegato le immagini della spezzata e della superficie.
Il frammento di codice è qui:
`\documentclass[a4paper,twoside] {article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
%\usepackage{fancyhdr}
%\pagestyle{fancy}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{/pgf/number format/use comma,compat=newest}
\usepgfplotslibrary{dateplot}
%\usepackage{filecontents}
%\pgfplotsset{compat=1.17}
\usepackage{mdframed}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage{colortbl}
\usepackage{xcolor}
\usepackage{longtable}
\usepackage{array}
\usepackage{enumitem}
\usepackage{subfig}
\usepackage{threeparttable}
\usepackage{framed}
\usepackage{imakeidx}
\usepackage{adjustbox}
\makeindex%[intoc]
%\usepackage{tabularewline}
\newmdenv[leftline=false,rightline=false,topline=false]{bottom}
\usepackage{tikz}
\usetikzlibrary{pgfplots.dateplot}
\usetikzlibrary{shapes}
\usetikzlibrary{positioning}
\usepackage{siunitx}
\sisetup{output-decimal-marker={,}}
\usepackage{pict2e}[2009/06/01]
\begin{figure}[ht]
\centering
\begin{tikzpicture}
\begin{axis}[
title={Spezzata},
xlabel={$x$},
ylabel={$y$},
zlabel={$z$},
zlabel style={rotate=-90},
view={250}{30}, grid=both % Angoli di visualizzazione
]
% Carica i dati dal file
\addplot3[surf, z buffer=sort] file {f_spazi.txt}; % Assicurati che il percorso del file sia corretto
\end{axis}
\end{tikzpicture}
% \caption{}
\end{figure}\begin{figure}[ht]
\centering
\begin{tikzpicture}
\begin{axis}[
title={Superficie},
xlabel={$x$},
ylabel={$y$},
zlabel={$z$},
zlabel style={rotate=-90},
view={250}{30}, grid=both % Angoli di visualizzazione
]
% Carica i dati dal file
\addplot3[surf, z buffer=sort] file {f_no_spazi.txt}; % Assicurati che il percorso del file sia corretto
\end{axis}
\end{tikzpicture}
% \caption{}
\end{figure}
\end{document}`
Le uniche differenze nei files di dati sono quelle che ho scritto sopra.
In questo grafico inserire queste righe vuote non è un grosso problema perché i dati non sono molti, ma nello stesso report devo inserire altri grafici analoghi che hanno molti dati e rischio di perdere parecchio tempo solo per organizzare i dati.
Qualche idea?
Grazie in anticipo.
- Devi essere connesso per rispondere a questo topic.