tikz: Gerade an Graph (als .csv eingelesen) zeichnen

Tabellen und Grafiken erstellen und anordnen


platzhirsch
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Fr 20. Jul 2012, 00:28

tikz: Gerade an Graph (als .csv eingelesen) zeichnen

Beitrag von platzhirsch »

Hallo Zusammen,

Ich habe mit tikz eine .csv Datei einer DSC Messung wie folgt eingelesen:
% 
\begin{tikzpicture}
		\begin{axis}[scale=1.7,ymin=0,ymax=1.2,xmin=160,xmax=280,grid=major,
			title={},
			xlabel={Temperatur in ${\degree}C$},
			ylabel={Wärmestrom in ${mW}/{mg}$ \quad $\longleftarrow$ exo}]
			\addplot [color=blue,mark=false,smooth,thick] table {dsc/1aufheizung.csv};
		\end{axis}
\end{tikzpicture}
% Ende des Dokumentes 
Nun versuche ich seit einer halben Ewigkeit eine Tangente (Bild im Anhang in rot dargestellt) zu zeichnen. Zusätzlich soll die Fläche, die durch die Tangente und die Kurve eingeschlossen wird, gefüllt werden.

Wenn das dann geklappt hat, würde ich noch gerne die Beschriftung (in rot dargestellt) einfügen.

Muss ich noch mehr aus meinem Dokument posten? Ich habe eine Hauptdatei, da steht ewig viel drin, das wollte ich jetzt nicht alles hier rein hauen.

Ich hoffe mir kann jemand dabei helfen. Danke!
Dateianhänge
so sollte es am Ende aussehen
so sollte es am Ende aussehen
final.PNG (69.17 KiB) 3304 mal betrachtet
1aufheizung.txt
Daten zum Einlesen als .csv
(2.28 KiB) 422-mal heruntergeladen
Zuletzt geändert von platzhirsch am Mo 23. Jul 2012, 09:09, insgesamt 1-mal geändert.

platzhirsch
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Fr 20. Jul 2012, 00:28

Beitrag von platzhirsch »

UPDATE:

Es sollte nun keine Tangente sein, sondern einfach eine Gerade die als Anfangs- und Endpunkt jeweils einen Punkt auf meinem Graphen hat.

Ich schaffe es nicht in der axis Umgebung eine Gerade nach meinen Koordinaten zu zeichnen. :roll:

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hi keine Zeit deshalb ohne Minimalbeispiel [2]: such einfach in der pgfplots Doku nach "coordinates".
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


platzhirsch
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Fr 20. Jul 2012, 00:28

Beitrag von platzhirsch »

hmm ... da finde ich leider nichts was mir hilft :oops:

Ich kann ja mit \draw eine Linie zeichnen. Nur sind alle Koordinaten (ausser der Nullpunkt) komplett verschieden.
Die Frage ist, wie kann ich mit den Koordinaten zeichnen die meinen Graphen aus der .csv Datei definieren?

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

In dem Fall würde ich dir raten ein richtiiges Minimalbeispiel [2] zu machen auf das man das nachvollziehen kann.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


platzhirsch
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Fr 20. Jul 2012, 00:28

Beitrag von platzhirsch »

\documentclass[
    BCOR12mm,
    DIV18,
    headsepline,
    oneside,
    index=totoc,  											
    listof=totoc,												
    bibliography=totocnumbered,
    openany,
    numbers=noenddot,										
    12pt]{scrbook}
\usepackage{pgfplots,pgfplotstable}								
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
      \begin{axis}[scale=1.7,ymin=0,ymax=1.2,xmin=160,xmax=280,grid=major,
         title={},
         xlabel={Temperatur in ${\degree}C$},
         ylabel={Wärmestrom in ${mW}/{mg}$ \quad $\longleftarrow$ exo}]
         \addplot [color=blue,mark=false,smooth,thick] table {dsc/1aufheizung.csv};
      \end{axis}
\end{tikzpicture} 

\end{document}
So sieht das zur Zeit bei mir aus. (Ich hoffe das Beispiel ist so OK)

Jetzt würde ich gerne eine Gerade von den Koordinaten (196.8,0.59) zu (240.77,0.54) ziehen. Die Koordinaten sind aus der Textdatei (csv) mit der ich den Graphen eingelesen habe.

Wenn ich nun mit:
\draw [solid] (196.8,0.59) -- (240.77,0.54)
eine Linie generieren will, dann funktioniert das nicht weil er das mit den Koordinaten nicht versteht :?:

Vielleicht habe ich da auch ein grundsätzliches Verständnisproblem.

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Natürlich nicht du sollst ja auch
\addplot coordinates ...
verwenden so wie es in der pgfplots Dokumentation steht. (s.o.). Wenn du ein ordentliches Minimalbeispiel [2] (<- das ist ein Verweis auf ein Link) liefern würdest, würde ich dir das sogar am lebenden Objekt zeigen.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


platzhirsch
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Fr 20. Jul 2012, 00:28

Beitrag von platzhirsch »

\documentclass[
    BCOR12mm,
    DIV18,
    headsepline,
    oneside, %twoside,
    index=totoc,  											
    listof=totoc,												
    bibliography=totocnumbered,					
    openany,
    numbers=noenddot,										
    12pt]{scrbook} 											

\usepackage[ngerman]{babel}									 
\usepackage[T1]{fontenc}										
\usepackage[latin1]{inputenc}
\usepackage{mathcomp}
\usepackage[thinspace,thinqspace,squaren,textstyle]{SIunits}
\usepackage{pgfplots,pgfplotstable}	
\usepackage{tikz}													
\usetikzlibrary{calc}

\begin{document}

\begin{center}
\begin{tikzpicture}
		\begin{axis}[scale=1.5,ymin=0,xmin=160,xmax=300,grid=major,font=\small,
			title={},
			xlabel={Temperatur in ${\degree}C$},
			ylabel={Wärmestrom in ${mW}/{mg}$ \quad $\longleftarrow$ exo}]
			\addplot [color=blue,mark=false,smooth,thick] table {1aufheizung.csv};
			\coordinate (a) at (196.8,0.59); 
			\coordinate (b) at (240.77,0.54);
			\draw [solid,thin] (a) -- (b);
		\end{axis}
	\end{tikzpicture}
\end{center}


\end{document}
Jetzt müsste es aber funktionieren!?!? (habs getestet)

Also, eine Gerade zwischen 2 Koordinatenpunkten des Graphen zeichnen und diese Fläche dann füllen ...

Danke schonmal für die Mühe ...

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hallo damit kannst leider nur du was anfangen. Das ist kein Minimalbeispiel [2] (in dem Link folgen: dort steht auch, wie man externe Daten in ein Minimalbeispiel einfügt. ) Zudem wäre es nett, wenn du dir mindestens die Mühe machen würdest die Dokumentationen zu lesen, wenn man dir schon die Stichworte vorkaut:
\documentclass{scrbook}                                   

\usepackage[ngerman]{babel}                      
\usepackage[T1]{fontenc}                               
\usepackage[latin1]{inputenc} 
\usepackage{mathcomp} 
\usepackage[locale=DE]{siunitx}
\usepackage{pgfplots,pgfplotstable}   


\begin{document} 

\begin{center} 
\begin{tikzpicture} 
      \begin{axis}[scale=1.5,ymin=0,xmin=160,xmax=300,grid=major,font=\small, 
         title={},     restrict x to domain*=160:300,
         xlabel={Temperatur in \si{\celsius}}, 
         ylabel={Wärmestrom in   \si{\milli\watt\per\milli\gram} \quad $\longleftarrow$ exo}] 
                 \addplot+[smooth, fill] coordinates { (196.8,0.59)  (240.77,0.54) (200, .7)} --cycle;
      \end{axis} 
   \end{tikzpicture} 
\end{center} 


\end{document}t
Ich habe mir zudem erlaubt, das veraltete SIunits mit siunitx zu ersetzten. Zudem schreibt man einheiten in upright. Immer und überall.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


platzhirsch
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Fr 20. Jul 2012, 00:28

Beitrag von platzhirsch »

Danke für die Hilfe. Jetzt kann ich wenigstens mal eine Linie zeichnen. Leider ist das mit dem Füllen noch nicht das was ich brauche.

Ich krieg das mit dem Einbinden der .csv in das Minimalbeispiel nicht hin und muss das jetzt auch bleiben lassen, weil alleine für diesen Graphen schon so viel Zeit drauf gegangen ist, dass es in keiner Relation mehr zum Rest meiner Arbeit steht :roll:

Antworten