PGFPlots Paket - Fragen und Antworten

Fragen von TeXwelt.de zum Thema

Klicke auf den Titel, um die Antworten zu lesen - oder sieh alle PGFPlots-Fragen

07/18/2016 04:34 PM
pgfplots, Abstand im Balkendiagramm zwischen Balken verkürzen, ybar

Hallo, ich bin gerade am verzweifeln. Ich möchte ein Balkendiagramm mit tikz, pgfplots erstellen. Zu jedem Wert gibt es drei Balken. Das Problem ist, dass ich den Abstand zwischen den beiden Plots nicht verkürzen kann. Ich würde gerne den weißen Abstand in der Mitte verkleinern, weiß aber nicht wie. Kann mir jemand helfen?

Mein Code:

Open in Online-Editor
\documentclass{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage{tikz}
\usepackage{pgfplots} 
\pgfplotsset{compat=1.9} 
\usepackage{pgfplotstable}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
    x tick label style={
        /pgf/number format/1000 sep=},
    ylabel=Population,
    enlargelimits=0.15,
    ybar,
    bar width=7pt,
    xtick={1930,1940},
    xmin=1930, xmax=1940
]
\addplot 
    coordinates {(1930,50e6) (1940,33e6)};

\addplot 
    coordinates {(1930,38e6) (1940,42e6)};

\addplot 
    coordinates {(1930,15e6) (1940,12e6)};

\addplot[red,sharp plot,update limits=false] 
    coordinates {(1910,4.3e7) (1990,4.3e7)} 
    node[above] at (axis cs:1950,4.3e7) {Houses};
\end{axis}
\end{tikzpicture}

\end{document}

Das Liefert folgendes:

Ist

Ich hätte gerne aber soetwas:

Soll

Ich hoffe ihr könnt mir helfen.


06/27/2016 09:07 PM
Wie kann ich in pgfplots den Parameter an eine Parameterfunktion-Kurvenschar schreiben?

alt text

Wieso geht eigentlich

Open in Online-Editor
foreach \k in {1,...,5}{
            \addplot+[mark=none, blue] {x^(\k+2) - x^(\k+1) -1} node[above, ]{\k};
}

nicht?

Wenn man irgendeinText statt \k verwendet, geht es. :(

Falsche Eingabe oder ein Bug?

BTW: Hat jemand eine Idee für einen gescheiten Maßstab, so dass die Kurven 'kurviger' werden?

Open in Online-Editor
\documentclass[border=5pt, varwidth]{standalone}
%\documentclass[ngerman]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}
[
%title =,
xlabel = $x$,
ylabel = $y$,
samples = 200,
domain = -2:2,
%ymin= -1,
ymax = 10,
ymin=-10,
xmax=2,
axis lines = middle, 
%y=0.2cm,
%x=1cm
]
\foreach \k in {1,...,5}{
        \addplot+[mark=none, blue] {x^(\k+2) - x^(\k+1) -1} ;
        % node[above, ]{\k};
}
\end{axis}
\end{tikzpicture}
\end{document}


06/27/2016 07:26 PM
Achsenbeschriftung mit TikZ-Formen

Ich würde gerne die x-Achse eines Diagramms mit verschiedenen Formen wie Kreise, Rechtecke, etc. beschriften und nicht mit Zahlen/Buchstaben.

Folgendes Beispiel:

Open in Online-Editor
\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{patterns}
\begin{document} 
\begin{figure}
\centering
\begin{tikzpicture}[scale=1]
\begin{axis}[
xtick={1,2,3},
]

\addplot[pattern = north west lines,ybar,pattern color=blue]
coordinates {(1,4.6)};
\addplot[pattern = north west lines,ybar,pattern color=blue]
coordinates {(2,4.8)};
\addplot[pattern = north west lines,ybar,pattern color=blue]
coordinates {(3,7.6)};

\end{axis}
\end{tikzpicture}
\end{figure} 
\end{document}

alt text

Und jetzt würde ich gerne die x-Achse anstatt mit "1,2,3" mit TikZ-Grafiken beschriften. Also irgendwie in der Art:

Open in Online-Editor
xticklabels={ \begin{figure}
\begin{tikzpicture}
\draw  (0,0) circle [radius=1cm];
\end{tikzpicture}
\end{figure},2,3  }


06/27/2016 06:27 PM
Achsenbeschriftung mit Bildern

Hallo,

ich würde gerne die x-Achse eines Diagramms mit verschiedenen Formen wie Kreise, Rechtecke, etc. beschriften und nicht mit Zahlen/Buchstaben.

Open in Online-Editor
\begin{figure}
\centering
\begin{tikzpicture}[scale=1]
\begin{axis}[
xtick={1,2,3}
]

\addplot[pattern = north west lines,ybar,pattern color=blue]
coordinates {(1,4.6)};
\addplot[pattern = north west lines,ybar,pattern color=blue]
coordinates {(2,4.8)};
\addplot[pattern = north west lines,ybar,pattern color=blue]
coordinates {(3,7.6)};

\end{axis}
\end{tikzpicture}
\end{figure}

liefert:

alt text

und jetzt möchte ich anstatt "1,2,3" die x-Achse mit Bildern beschriften.

habs über

Open in Online-Editor
xtick={\includegraphics{Bild1},\includegraphics{Bild2},\includegraphics{Bild3}}

erfolglos probiert.

Alternativ könnte ich die Formen auch direkt über Tikz erstellen. Ich wäre über Lösungsvorschläge sehr dankbar.


06/25/2016 07:14 PM
Problem mit symbolic x coords und \draw

Ich habe folgenden funktionierenden Code für ein Diagramm:

Open in Online-Editor
\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{patterns}
\pgfkeys{/pgf/number format/.cd ,use comma ,set thousands separator={ }}  
\pgfplotsset{ every axis label/.append style={font=\scriptsize},  
every tick label/.append style={font=\scriptsize}} % globale Einstellungen.
\pgfplotsset{scaled y ticks=false} %keine wiss. notation bei achsen

\begin{document}
% nur eine Säule anzeigen
\pgfplotsset{/pgfplots/ybar legend/.style={
        /pgfplots/legend image code/.code={\draw[##1,/tikz/.cd,bar
width=3pt,yshift=-0.2em,bar shift=0pt] plot coordinates {(0cm,0.8em)
};},
    }}

 begin{figure}[h!]
\centering
\begin{tikzpicture}
\begin{axis}[
width=\textwidth,
    height=8cm,
    ymax = 70000,
legend style={at={(0.5,-0.5)},
anchor=north,legend columns=-1, draw=none},
ybar,
xtick = {1,2,3,4,5,6,7,8,9,10,11,12,13,14},
x tick label style={rotate=90}, %Achsenbeschriftung drehen
grid,
grid style={dashed}, 
]

\addplot[pattern = north west lines, pattern color = blue]
coordinates {   
(1,1069) (2, 486) (3, 314) (4, 671) (5, 2566) (6, 1324) (7, 912) (8, 4518) (9, 2259) (10, 1539) 
(11, 1086) (12, 2060) (13, 1539) (14, 1086)};

\addplot[pattern = north west lines, pattern color = gray]
coordinates {   
(1,5051) (2, 2268) (3, 1420) (4, 1033) (5, 14948) (6, 8000) (7, 5464) (8, 45249) (9, 25189) (10, 17212)
(11, 12225) (12, 54645) (13, 41152) (14, 29155)};

\draw [black,thick] (0.8,10000) --(4.2,10000)    
node[pos = 0.5,above] {Größe 1};

\draw [black,thick] (4.8,20000) --(7.2,20000)    
node[pos = 0.5,above] {Größe 2};

\draw [black,thick] (7.8,50000) --(11.2,50000)   
node[pos = 0.5,above] {Größe 3};

\draw [black,thick] (11.8,60000)--(14.2,60000)   
node[pos = 0.5,above] {Größe 4};

\legend{alt,neu}
\end{axis} 
\end{tikzpicture}
\end{figure}

\end{document}

Damit erhalte ich folgendes Diagramm: alt text

Anstatt mit Zahlen möchte ich die x-Achse jedoch mit verschiedenen Artikelbezeichnungen beschriften, so wie hier:

alt text

Normalerweise geht das ja dann über symbolic x-coords. Also hiermit:

Open in Online-Editor
symbolic x coords={KBH1 150 A, KBH1 150 B, KBH1 150 C, KBH1 150 D, KBH1 250 B, KBH1 250 C, KBH1 250 D, KBH1 350 A, KBH1 350 B, KBH1 350 C, KBH1 350 D, KBH1 450 B, KBH1 450 C, KBH1 450 D},

xtick={KBH1 150 A, KBH1 150 B, KBH1 150 C, KBH1 150 D, KBH1 250 B, KBH1 250 C, KBH1 250 D, KBH1 350 A, KBH1 350 B, KBH1 350 C, KBH1 350 D, KBH1 450 B, KBH1 450 C, KBH1 450 D},

Nur dann bekomme ich logischerweise eine Fehlermeldung für \draw da es die x-Koordinaten nicht kennt. Schreibe ich nun aber:

Open in Online-Editor
\draw [black,thick] (KBH1 150 A,10000)  --(KBH1 150 D,10000)     
node[pos = 0.5,above] {Größe 1};

Bekomme ich die Fehlermeldung:

Open in Online-Editor
! Package PGF Math Error: Unknown function `KBH1' (in 'KBH1 150 A').See the PGF Math package documentation for explanation.Type H <return> for immediate help.... \end{axis}

! Package PGF Math Error: Unknown function `KBH1' (in 'KBH1 150 A').See the PGF Math package documentation for explanation.Type H <return> for immediate help.... \end{axis}

Wie bekomme ich es also hin, dass ich ein \draw mit symbolic x-coords hinbekomme damit ich sowohl die Artikelbezeichnungen auf der x-Achse erhalte als auch die horizontalen Linien über den Säulen behalte? Im Prinzip brauche ich eine Kombination aus beiden Diagrammen.

Nachtrag: An den Leerzeichen in den symbolic x-coords liegt es nicht, das habe ich bereits getestet mit dem gleichen Fehlermeldungen als Ergebnis.


06/04/2016 05:37 PM
Erstellung Nyquist Diagramm von Impedanzmessung.

Hey!

Ich habe 10 Datensätze, jeweils habe ich die gleiche Frequenz und dazugehörig unterschiedliche reale und imaginäre Widerstandswerte (Z' und Z''). Ich möchte Z'' über Z' abbilden, also Z' als x-Achse. Theoretisch sind die Frenquenzwerte irrelevant, aber es sind nunmal keine gleichen x-Werte. Ich hätte gerne die Graphen in einem Diagramm, mit pgfplots komm ich nicht weiter.

haha, tut mir Leid! Ich werds mehr mathematisch beschreiben :D

Ich habe einige txt files mit 3 Spalten, die erste zeigt die Frequenz, die zweite einen Impedanzwert (realer elektrischer Widerstand), und die dritte Spalte den imaginären Widerstand (eigentlich irrelevant wie das heißt), hier nur ein ausschnitt:

Open in Online-Editor
freq. /Hz   Z1 /mohm    Z2 /mohm
1.000E+05   4.025E-01   3.786E-02
6.310E+04   4.320E-01   -2.213E-02
3.981E+04   4.613E-01   -6.642E-02
2.512E+04   4.989E-01   -9.858E-02
1.585E+04   5.430E-01   -1.220E-01
1.000E+04   5.904E-01   -1.385E-01
6.310E+03   6.396E-01   -1.458E-01
3.981E+03   6.876E-01   -1.501E-01
2.512E+03   7.341E-01   -1.512E-01
1.585E+03   7.786E-01   -1.503E-01
1.000E+03   8.204E-01   -1.511E-01
6.310E+02   8.604E-01   -1.557E-01
3.981E+02   9.010E-01   -1.650E-01
2.512E+02   9.468E-01   -1.798E-01

Jetzt möchte ich am liebsten ein Diagramm haben, mit Z1 als X-Achse und Z2 als Y-Achse. Die txt Datei ist automatisch mit tab's getrennt, sodass man die relativ problemlos einlesen können sollte.

Wenn ich pgfplots nutze, ließt er ja automatisch die erste Spalte als x-Achse ein, ich möchte aber die Spalte gerne festlegen. (sonst muss ich jedes per hand in excel öffnen und löschen usw -.-)

mein code:

Open in Online-Editor
\documentclass[paper=a4,12pt,version=last]{scrartcl}
\usepackage{pgfplots}

 \begin{document}
 \centering
\begin{tikzpicture}
    \begin{loglogaxis}[
    legend pos = outer north east,      
    axis lines = left,
    xlabel = $Z'$,
    ylabel = {$-Z''$},
    width=0.4\textwidth,
    height=0.4\textheight,
        title={Nyquist Plot},
        ]

    \pgfplotstableread{vari/0A.txt}
    \datatable
        \addplot table[y=Z1] {vari/0A.txt};
    %\addplot table[y=Z2] {vari/0A.txt};

        \legend{Z',Z''}

    \end{loglogaxis}

     \end{tikzpicture}
    \end{document}

Ich muss wahrscheinlich was anderes nutzen als pgfplotstableread um die x-Achse festzulegen? Ich hab quasi für jeden Datensatz unterschiedliche x-Werte, außer die Frequenz ist gleich, die sieht man aber im graphen nicht, man weiß nur in welcher Richtung der Graph zeitlich abgebildet wird:

alt text

Ich starte die Messung bei einer hohen Frequenz, und je geringer diese wird, desto mehr wandert der Graph nach rechts. (Für Interessierte: bei Stromänderung ändert sich Verlauf, Impedanzmessung einer Brennstoffzelle)


05/10/2016 08:03 AM
siunitx und pgfplots (mit externalize) stören sich gegenseitig

Ich bin z.Z. an einem größeren Dokument am Arbeiten und habe jetzt mein Einheitensystem auf siunitx umgestellt (hatte vorher keins). Das Dokument beinhaltet ca. 20 Diagramme die aus großen CSV Dateien gebaut werden (bis zu 2000 Datenpunkte pro Diagramm). Dies lässt sich bekannter Weise ja nur mit externalize lösen.

Soweit so gut. Problem ist nun Latex ist nicht mehr in der Lage die externen Diagramme neu zu erstellen dafür reicht der Speicher nicht aus. Sind die externen Diagramme noch vorhanden (konnte erstellt werden wie noch kein siunitx vorhanden war), klappt alles Problemlos. Lösch ich diese Dateien klappt nichts mehr.

Leider habe ich glaub ich auch von einem Prof. eine schlechte Latex-Vorlage bekommen, die reinste Anarchie.

Im Anhang Log und Minimalbeispiel

Open in Online-Editor
<use ./Bilder/Umkehrspiel.jpg>   Package pdftex.def Info: ./Bilder/Umkehrspiel.jpg used on input line 314.   (pdftex.def) Requested size: 341.43307pt x 205.01907pt.   [25 <./Bilder/Spindel.jpg> <./Bilder/Umkehrspiel.jpg>] [26]

 LaTeX Warning: Reference `Dia:SF8' on page 27 undefined on input line 383.

 LaTeX Warning: Reference `Dia:SF12' on page 27 undefined on input line
383.

 \openout4 = `000-Vorlage-figure2.md5'.

 \openout4 = `000-Vorlage.auxlock'.

 ===== 'mode=convert with system call': Invoking 'pdflatex
-shell-escape -halt-o   n-error -interaction=batchmode -jobname "000-Vorlage-figure2" "\def\tikzexterna   lrealjob{000-Vorlage}\input{000-Vorlage}"'
========   runsystem(pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname   "000-Vorlage-figure2" "\def\tikzexternalrealjob{000-Vorlage}\input{000-Vorlage }")...executed.

 \openout4 = `000-Vorlage.auxlock'.

 ! Package tikz Error: Sorry, the system call 'pdflatex -shell-escape
-halt-on-e   rror -interaction=batchmode -jobname "000-Vorlage-figure2" "\def\tikzexternalre   aljob{000-Vorlage}\input{000-Vorlage}"' did NOT result in a usable output file '000-Vorlage-figure2' (expected one of .pdf:.jpg:.jpeg:.png:). Please verify th   at you have enabled system calls. For pdflatex, this is 'pdflatex
-shell-escape   '. Sometimes it is also named 'write 18' or something like that. Or maybe the c   ommand simply failed? Error messages can be found in '000-Vorlage-figure2.log'.   If you continue now, I'll try to typeset the picture.

 See the tikz package documentation for explanation.   Type H <return> for immediate help.   ...

 l.404 \end{tikzpicture}

 This error message was generated by an \errmessage   command, so I can't give any explicit help.   Pretend that you're Hercule Poirot: Examine all clues,   and deduce the truth by order and method.

 Runaway definition?  
->\pgfsyssoftpath@movetotoken {256.23254pt}{135.9611pt}\pgfsyssoftpath@curvetos upportatoken \ETC.   ! TeX capacity exceeded, sorry [main memory size=3000000].   <argument> ...th@curvetosupportatoken {255.33713pt   }{133.9611pt}\pgfsyssoftpa...   l.404 \end{tikzpicture}

 If you really absolutely need more capacity,   you can ask a wizard to enlarge me.

 Here is how much of TeX's memory you used:   39504 strings out of 493634   912231 string characters out of 3141308   3000001 words of memory out of 3000000   42117 multiletter control sequences out of 15000+200000   78801 words of font info for 61 fonts, out of 3000000 for 9000   1025 hyphenation exceptions out of 8191   64i,12n,103p,10373b,2071s stack positions out of 5000i,500n,10000p,200000b,50000s   !
==> Fatal error occurred, no output PDF file produced!

Main.tex:

Open in Online-Editor
\documentclass[ngerman,12pt]{article} % scrreprt article}
\usepackage{german}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} %Deutsche Formatierungen. Zeilenumbrüche, Umlaute..
\usepackage{lmodern}
\usepackage{cite}
\usepackage{float}
\usepackage{hyperref}
\usepackage{setspace}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{chngcntr}
%\usepackage{epstopdf}
\usepackage{siunitx}
\sisetup{
    locale = DE ,
    per-mode = symbol
}
\counterwithin{figure}{section}
\usepackage[table]{xcolor}
% % % % Diagramme Ausschalten --> Zweite Zeile Auskommentieren
\newif\iftabelle
\tabelletrue

\input{00-settings}
\sloppy

\begin{document}

    \input{01-titlepage}
    \begin{onehalfspace}                %Zeilenabstand 1,5
        \pagenumbering{arabic}          % arabic page numbers for following pages
        \input{02-einleitung}
        \input{03-grundlagen}
        \input{05-untersuchungen}
        \input{06-versuche}
        \input{07-faehigkeitsuntersuchungen}
        \input{08-fazit-verbesserungen}
    \end{onehalfspace}
    \begin{appendix}                    %Definierung Anhang
        \input{09-anhang}
    \end{appendix}

\end{document}

Settings.tex:

Open in Online-Editor
% % % % % % % % Maße und Abstände
\usepackage[a4paper]{geometry}
    \geometry{a4paper, top=25mm, left=25mm, right=25mm, bottom=25mm, headsep=10mm, footskip=8mm} % geometry for scientific article
    \setlength{\parindent}{0cm}

% % % % % % % % Headline and Footline
\usepackage{fancyhdr}
    \fancyhf{}
    \pagestyle{fancy}
    \renewcommand{\sectionmark}[1]{\markboth{#1}{}}
    \lhead{\MakeUppercase{\leftmark}} % Headline left
    \chead{}                          % Headline center
    \rhead{\thepage}                  % Headline right
    \lfoot{}                          % Footline left
    \cfoot{}                          % Footline center
    \rfoot{}                          % Footline right
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\footrulewidth}{0.4pt}

\graphicspath{{./Bilder/}}  
%\sisetup{
%   locale = DE,
%   per-mode = symbol}

\hypersetup{pdfinfo={
        Title=XX,
        Author=XX}}

\numberwithin{equation}{subsection}
% % % % % % % % % % % PDGplot und Diagramme einfügen
\iftabelle
\usepackage{datatool,longtable}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{dateplot}
\usepgfplotslibrary{external}
\usetikzlibrary{pgfplots.external}
\tikzexternalize
\pgfplotsset{/pgf/number format/use comma,
    /pgf/number format/read comma as period}

\pgfplotstableread{./Messwerte/i109.csv}\sekundendauerkrafttable
\pgfplotstableread{./Messwerte/u109.csv}\spannungsquelleeinhundertneun
\pgfplotstableread{./Messwerte/8N12N.csv}\aufblock
\pgfplotstableread{./Messwerte/i2.csv}\ihalbe
\fi


04/07/2016 11:15 AM
Festlegung der Definitionsmenge eines pgfplots-Graphen in einem xparse-Befehl

Ich benötige mehrere Graphen, die in Koordinatensystemen mit ähnlichen Eigenschaften dargestellt werden sollen. Daher habe ich einen entsprechenden xparse-Befehl definiert, der als Argumente die jeweiligen Achseneinstellungen, optional eine Angabe zum Definitionsbereich und schließlich den Funktionsterm erwartet.

Open in Online-Editor
\documentclass{article}
\usepackage{pgfplots}
\usepackage{xparse}

\NewDocumentCommand \Graph {m o m}
    {
        \begin{tikzpicture}
        \begin{axis}[axis lines=middle,xtick=\empty,ytick=\empty,#1]
        \addplot[semithick,samples=200,\IfNoValueF{#2}{domain=#2}] {#3};
        \end{axis}
        \end{tikzpicture}
    }

\begin{document}
\Graph{xmin=0,xmax=6.5,ymin=0,ymax=6}[0:6]{-53/360*(x-3)^4-1/20*(x-3)^3+437/360*(x-3)^2+9/20*(x-3)+1}
\end{document}

Das Beispiel liefert die Fehlermeldung ! Package pgf Error: Unknown arrow tip kind domain=. Was muss ich verändern?


03/23/2016 04:25 PM
Problem mit tikzexternalize

Hallo zusammen,

ich möchte gerne meine Grafiken mit tikzexternalize exportieren um mir das ständige neu-kompilieren zu sparen. Habe das in einem anderen Dokument auch schon wunderbar hinbekommen. Nur aktuell bekomme ich (in einem anderen Dokument) immer folgende Fehlermeldung:

Open in Online-Editor
Package tikz Error: Sorry, the system call 'pdflatex -shell-escape -halt-on-e
rror -interaction=batchmode -jobname "Abbildungen/Hauptdokument-figure1" "\def\
tikzexternalrealjob{Hauptdokument}\input{Hauptdokument}"' did NOT result in a u
sable output file 'Abbildungen/Hauptdokument-figure1' (expected one of .pdf:.jp
g:.jpeg:.png:). Please verify that you have enabled system calls. For pdflatex,
this is 'pdflatex -shell-escape'. Sometimes it is also named 'write 18' or som
ething like that. Or maybe the command simply failed? Error messages can be fou
nd in 'Abbildungen/Hauptdokument-figure1.log'. If you continue now, I'll try to
typeset the picture.
See the tikz package documentation for explanation.
Type H <return> for immediate help.
...
l.438 \end{tikzpicture}

Hat jemand eine Idee woran es liegen könnte? Danke

Edit:

Habe das Log-File hochgeladen: Log-File

Also wenn ich die Warnungen durchgehe, finde ich da so direkt nichts, was mich auf dieses Problem aufmerksam machen würde.

Minimalbeispiel:

Open in Online-Editor
\documentclass[12pt,a4paper]{report}
\usepackage[miktex]{gnuplottex}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{units}
\usepgfplotslibrary{external} 
\tikzexternalize[prefix=Plots/]

\begin{document}

\begin{figure}[h]
\begin{tikzpicture}[scale=1]
\begin{axis}[
smooth,
no markers, 
enlargelimits=false,

x unit=\si{\milli\metre}, 
y unit=\si{\newton\per\micro\meter},

]
\addplot table[x= l2,y = cD,col sep=tab]{Schaft_l100.txt};
\addlegendentry{$c_{\rm{D}}$}
\addplot table[x= l2,y = cB,col sep=tab]{Schaft_l100.txt};
\addlegendentry{$c_{\rm{B}}$}
\addplot table[x= l2,y = cT,col sep=tab]{Schaft_l100.txt};
\addlegendentry{$c_{\rm{T}}$}

\end{axis}
\end{tikzpicture}
\end{figure}

\end{document}


03/22/2016 10:34 AM
Logo mit tikz nachzeichnen

Hallo,

ich möchte folgendes Logo mit tikz nachzeichnen.

alt text

Wie kann ich einen dieser 'Flügel' nachzeichnen und ihn dann mehrfach um den inneren Kreis platzieren?

Viele Grüße

Kurt


03/12/2016 09:02 PM
Graph einer Logarithmus-Funktion wird falsch gezeichnet

Beim Zeichnen einer Titrationskurve (mathematische Funktion siehe unten) gibt pgfplot einem zum Teil falschen Graph. Was mache ich falsch?

Open in Online-Editor
\documentclass{standalone}
  \usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xmin=0,
  xmax=0.02,
  ymin=0,
  ymax=14,
  ylabel={pH},
  axis x line=bottom,
  axis y line=left,
  ]
\addplot[domain=0:0.02, samples=1001,]{-log10(-0.5*(-0.01+\x)/(0.1+\x)+sqrt(0.25*((-0.01+\x)/(0.1+\x))^2+10^(-14)))};
\end{axis}
\end{tikzpicture}
\end{document}

alt text


03/07/2016 02:16 PM
Bestimmtheitsmaß einer Regressionsgerade

Ich plotte meine Daten mit pgfplots (http://pgfplots.net/tikz/examples/regression-line/ ). Ich möchte meiner Regressionsgeraden ein Bestimmtheitsmaß (R^2, R squared, coefficient of determination) hinzufügen. Dazu konnte ich weder auf deutsch noch englisch etwas finden. Jemand eine Idee? Danke!


03/07/2016 11:46 AM
Pgfplot zwei verknüpfte x-Achsen

Hallo zusammen,

ich versuche in einem Diagramm Daten aus einer Simulation darzustellen, wobei ich gerne 2 x-Achsen verwenden möchte. Aktuell habe ich nur eine der beiden Achsen darbestellt: Die Geschwindigkeit des Förderbandes

Open in Online-Editor
\documentclass{standalone}

\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{pgfplots}
\usepgfplotslibrary{units} 
\usepackage{pgf} 
\usepackage{tikz}

\begin{document}
\centering
\begin{tikzpicture}
\begin{axis}[
  width=\textwidth,
  height=8cm, 
  xmin=0, xmax=80,
  ymin=1800, ymax=2800,
  xlabel=Bandgeschwindigkeit / Meter pro Minute,
  ylabel=Tagesoutput / Stk.]
%\addplot table [y=FiltermengeX1, x=Bandgeschwindigkeit]{./Experimente/EXP3.dat};
%\addplot table [y=FiltermengeX2, x=Bandgeschwindigkeit]{./Experimente/EXP3.dat};
\begin{scope}
    \draw[]({axis cs:20,0}|-current axis.south) -- ({axis cs:20,0}|-current axis.north) node [midway, above left, sloped, xshift=0.5cm] (TextNode) {max. Geschwindigkeit};
\end{scope}
\fill[gray,fill opacity=0.25] (axis cs:0,0) rectangle (axis cs:20,2800);
%\addlegendentry{Filtermenge / Tag}
\end{axis}
\end{tikzpicture}

\end{document}

Nun möchte ich als zweite x-Achse den Zeitindex in [Minuten pro Meter] darstellen. Die Bandgeschwindigkeit und der Zeitindex hängen direkt voneinander ab: alt text

Als Länge des Trägers wird mit 0.24 m gearbeitet. Wie schaffe ich es die zweite Achse richtig darzustellen? Das ganze entspricht einer x zu 1/x Beziehung der beiden x-Achsen.

Die dargestellten Daten:

Open in Online-Editor
Zeitindex Bandgeschwindigkeit FiltermengeX1 FiltermengeX2
     0.001              240.00          2656        2668.5
     0.002              120.00          2661          2665
     0.003               80.00          2638          2658
     0.004               60.00          2660          2667
     0.005               48.00          2650        2671.5
     0.006               40.00          2670          2672
     0.007               34.29          2657          2654
     0.008               30.00          2642        2641.5
     0.009               26.67          2503        2509.5
      0.01               24.00          2376          2386
     0.011               21.82          2516        2544.5
     0.012               20.00          2628        2628.5
     0.013               18.46          2563        2568.5
     0.014               17.14          2438        2443.5
     0.015               16.00          2540          2545
     0.016               15.00          2551        2545.5
     0.017               14.12          2461        2465.5
     0.018               13.33          2430        2437.5
     0.019               12.63          2367        2386.5
      0.02               12.00          2358          2368
     0.021               11.43          2329        2329.5
     0.022               10.91          2374        2373.5
     0.023               10.43          2336          2339
     0.024               10.00          2273          2277
     0.025                9.60          2287        2288.5
     0.026                9.23          2306        2301.5
     0.027                8.89          2226        2231.5
     0.028                8.57          2233        2224.5
     0.029                8.28          2201        2198.5
      0.03                8.00          2209        2214.5
     0.031                7.74          2202          2185
     0.032                7.50          2162        2149.5
     0.033                7.27          2103        2114.5
     0.034                7.06          2113        2113.5
     0.035                6.86          2130        2139.5
     0.036                6.67          2116        2110.5
     0.037                6.49          2065          2075
     0.038                6.32          2076        2072.5
     0.039                6.15          2041          2042
      0.04                6.00          2033          2034

mein aktuelles Diagramm:

alt text

Danke im Voraus für eure Hilfe!

Schöne Grüße Robert Egger


02/08/2016 02:12 PM
Farbe bei Legendeneinträge bei pgfplots

Ich habs geschafft einen neuen Datensatz zu plotten. Bei diesem Beispiel werden allerdings die Farben der Legendeneinträge doppelt ausgegeben. Wie kann ich das verhindern?

Open in Online-Editor
\documentclass[fontsize=12pt,paper=a4]{scrartcl}
\usepackage{pgfplots,filecontents}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{dateplot}
\usepackage{tikzscale}  
\begin{filecontents}{external-debt.csv}
Quarter,Monetary authorities Short-term debt,General government,General government Short-term debt,General government Long-term debt,Deposit money banks Short-term debt,Deposit money banks Long-term debt,Other sectors,Direct investment,Total external debt,Total external debt-Direct investment,External debt position to GDP-ratio
2000-01-01,9594,131965,13816,118149,50818,133295,203488,13658,542818,13658,82.6
2000-04-01,13562,140222,18081,122141,78429,224328,149843,12981,619365,12981,92.6
2013-10-01,29439,556918,0,556918,125319,21850,10079872,1372697,12328310,1372697,613.3
2014-01-01,26667,514831,0,514831,129525,26652,9921453,1337141,12095886,1337141,592.3
\end{filecontents}

\begin{filecontents}{external-debt.tikz}
\begin{tikzpicture}
\sffamily
  \begin{axis}[
   date ZERO=2000-01-01,
     date coordinates in=x,
     no marks,
     width=15cm,height=8cm,
     enlargelimits=false,
     xticklabel={\tiny\year},
     xtick={2000-1-1,2001-01-01,2002-01-01,2003-01-01,2004-01-01,2005-01-01,2006-01-01,2007-01-01,2008-01-01,2009-01-01,2010-01-01,2011-01-01,2012-01-01,2013-01-01,2014-01-01},
     xtick pos=left,
     xtick align=outside,
     ymin=0,ymax=16 000 000,
     % assume math mode: nicht überprüfen ob der Mathemodus an ist
     % int detect: keine Nachkommastellen für ganze Zahlen anzeigen
     % 1000 sep={\,}: Kleiner Abstand zwischen 3er-Kolonnen
     yticklabel={\pgfmathprintnumber[assume math mode,int detect,1000 sep={\,}]{\tick}},
     % y-Achse nicht skalieren, sondern die tatsächliche Zahl im \tick angeben
     scaled y ticks=false,
     ytick style={draw=none},
     yticklabel pos=right,
     ymajorgrids=true,
    legend style={
      draw=none,
      legend cell align=left,
      %at={(0.00,1.4)},
      at={(1.15,1.05)},
       anchor=north west,
      legend image code/.code={
        \filldraw[##1] (-.5ex,-.5ex) rectangle (1ex,1ex);
      }
    }
    ]

    \addplot table[col sep=comma,x=Quarter,y={Monetary authorities Short-term debt}] {external-debt.csv};
    \addlegendentry{Monetary authorities Short-term debt};
     \addplot table[col sep=comma,x=Quarter,y={General government}] {external-debt.csv};
        \addlegendentry{General government};
         \addplot table[col sep=comma,x=Quarter,y={General government Short-term debt}] {external-debt.csv};
            \addlegendentry{General government Short-term debt};
             \addplot table[col sep=comma,x=Quarter,y={General government Long-term debt}] {external-debt.csv};
                \addlegendentry{General government Long-term debt};
                 \addplot table[col sep=comma,x=Quarter,y={Deposit money banks Short-term debt}] {external-debt.csv};
                    \addlegendentry{Deposit money banks Short-term debt};
                     \addplot table[col sep=comma,x=Quarter,y={Deposit money banks Long-term debt}] {external-debt.csv};
                        \addlegendentry{Deposit money banks Long-term debt};
                         \addplot table[col sep=comma,x=Quarter,y={Other sectors}] {external-debt.csv};
                            \addlegendentry{Other sectors};
                             \addplot table[col sep=comma,x=Quarter,y={Direct investment}] {external-debt.csv};
                                \addlegendentry{Direct investment};
                                 \addplot table[col sep=comma,x=Quarter,y={Total external debt}] {external-debt.csv};
                                    \addlegendentry{Total external debt};
                                     \addplot table[col sep=comma,x=Quarter,y={Total external debt-Direct investment}] {external-debt.csv};
                                        \addlegendentry{Total external debt-Direct investment};
                                         \addplot table[col sep=comma,x=Quarter,y={External debt position to GDP-ratio}] {external-debt.csv};
                                            \addlegendentry{External debt position to GDP-ratio};

  \end{axis}
\end{tikzpicture}
\end{filecontents}

\begin{document}
\begin{figure}
\begin{center}
\includegraphics[width=1.0\linewidth]{external-debt.tikz}
\end{center}
\label{Fig:interbankfinanzkredite}
\end{figure}    
\end{document}


02/07/2016 08:03 PM
Wie kann ich die Geschwindigkeit bei Kompilieren mit pgfplots erhöhen?

Ich verwende neuerdings einige pgfplots-Abbildungen. Gefühlt hat sich die Geschwindigkeit beim Kompilieren drastisch verringert.

In meinem Hauptdokument verwende ich für Bilder die draft Option und binde auch immer nur aktuelle Kapitel ein bzw. maskiere die nicht benötigten mit %include{}. Gibt es bei pgfplots eine empfehlenswerte Vorgehensweise , um die Geschwindigkeit zu erhöhen?


02/07/2016 02:45 PM
Wie verhindere ich einen Zeilenumbruch bei \addlegendentry?

Ich habe die Legende über die Abbildung gestellt, da ich diese mit textwidth vergrößert habe. In meinem Dokument, leider sieht man dies nicht im Minimalbeispiel, erhalte ich einen Zeilenumbruch. Wie kann ich gffs. beide Legeneinträge nebeneinander anstelle von unteneinander stellen? alt text

Open in Online-Editor
\documentclass[fontsize=12pt,paper=a4]{scrartcl}
\usepackage{pgfplots,filecontents}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{dateplot}
\usepackage{tikzscale}
\usepackage{blindtext}
\begin{filecontents}{cbisinterestrates.csv}
Date,Overnight CBI rates,CBI current account rates
1999-12-30,10.00,4.50
2000-01-04,10.00,4.50
2015-12-31,7.50,5.50
2016-01-01,7.50,5.50
\end{filecontents}
\begin{filecontents}{cbisinterestrates.tikz}
\begin{tikzpicture}
\sffamily
  \begin{axis}[
  date ZERO=2000-01-01,
    date coordinates in=x,
    no marks,
    width=12cm,height=6cm,
    enlargelimits=false,
    xticklabel={\tiny\year},
    xtick={2000-1-1,2001-01-01,2002-01-01,2003-01-01,2004-01-01,2005-01-01,2006-01-01,2007-01-01,2008-01-01,2009-01-01,2010-01-01,2011-01-01,2012-01-01,2013-01-01,2014-01-01,2015-01-01,2016-01-01},
    xtick pos=left,
    xtick align=outside,
    ymin=0,ymax=28,
    ytick={0,4,...,28},
    yticklabel={\pgfmathprintnumber[verbatim]{\tick}\%},
    ytick style={draw=none},
    yticklabel pos=right,
    ymajorgrids=true,
    legend style={
      draw=none,
      legend cell align=left,
      at={(0.00,1.4)},
      anchor=north west,
      legend image code/.code={
        \filldraw[##1] (-.5ex,-.5ex) rectangle (1ex,1ex);
      }
    }
    ]
    \addplot table[col sep=comma,x=Date,y={Overnight CBI rates}] {cbisinterestrates.csv};
    \addlegendentry{Overnight CBI rates};
    \addplot table[col sep=comma,x=Date,y={CBI current account rates}] {cbisinterestrates.csv};
    \addlegendentry{CBI current account rates};
  \end{axis}
\end{tikzpicture}
\end{filecontents}

\begin{document}
\begin{figure}
\begin{center}
\includegraphics[width=1.0\linewidth]{cbisinterestrates.tikz}
\end{center}
   \caption{Interbankfinanzkredite}
   \label{Fig:interbankfinanzkredite}
\end{figure}

\end{document}


02/06/2016 08:50 PM
Beschriftung/Angaben/Legende bei pgfplots

Ich war doch zu optimistisch, dass ich nun mit pgfplots umgehen kann.

Die Beschriftung auf der Y-Achse hab ich versucht in eine Währung zu ändern. Sie sollte in 50 000 Schritten bis zu 300 000 Kronen gehen. Der höchste Datenwert liegt bei 250 000 Kronen. Es gelingt mir nicht die Legende anzupassen. Wie sich das mit ymax und ytick bewerkstelligen lässt, erschließt sich mir nicht bzw. die Anpassung ist mir misslungen.

Open in Online-Editor
\documentclass[tikz]{standalone}
\usepackage{pgfplots,filecontents}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{dateplot}

\begin{filecontents}{infla.csv}
 Year,Interbank
 2000-01-01,48550
 2008-07-01,250100
 2015-12-01,22000
\end{filecontents}

\begin{document}
\sffamily   
\begin{tikzpicture}
\sffamily
\begin{axis}[
    date ZERO=2000-01-01,
    date coordinates in=x,
    no marks,
    width=12cm,height=6cm,
    enlargelimits=false,
    xticklabel={\tiny\year},
    xtick={2000-1-1,2001-01-01,2002-01-01,2003-01-01,2004-01-01,2005-01-01,2006-01-01,2007-01-01,2008-01-01,2009-01-01,2010-01-01,2011-01-01,2012-01-01,2013-01-01,2014-01-01,2015-01-01},
    xtick pos=left,
    xtick align=outside,
    ymin=0,ymax=300 000,
    yticklabel={\pgfmathprintnumber[verbatim]{\tick}ISK},
    ytick style={draw=none},
    yticklabel pos=right,
    ymajorgrids=true,
    legend style={
    draw=none,
     legend cell align=left,
   at={(1.12,1.05)},
  anchor=north west,
       legend image code/.code={
    \filldraw[##1] (-.5ex,-.5ex) rectangle (1ex,1ex);
   }
} ]       
    \addplot table[col sep=comma,x=Year,
              y={Interbank}] {infla.csv};
          \addlegendentry{ISK};
          \end{axis}
\
    end{tikzpicture}
    \end{document}


02/03/2016 09:23 AM
Stil-Profile für pgfplots

Hallo! Wäre es nicht eine gute Idee, wenn pgfplots um Standardprofile erweitert würde; ähnlich wie biblatex.

Zum Bsp. so:

\usepackage[xycoordinatesystem={style=germanschool}]{pgfplots}

legt so ein Layout fest:

alt text


01/23/2016 06:20 PM
pgfplots: Wieso werden 'width' und 'height' nicht respektiert bzw. Graph zu klein ausgedruckt?

Ich verwende width=3.5cm, height=2.5cm,; beim Audruck messe ich jedoch:

alt text

Woran liegt das?

Open in Online-Editor
\documentclass[paper=a5]{scrartcl}
%\documentclass[border=2pt, varwidth]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}% derzeit aktuelle Version
%\pgfplotsset{compat=newest}% Overleaf hat nur Version 1.11

\usepackage{filecontents}
\begin{filecontents}{data.csv}
5   0   0.59049 0.32768 0.23730 0.16807 0.07776 0.03125
5   1   0.91854 0.73728 0.63281 0.52822 0.33696 0.18750
5   2   0.99144 0.94208 0.89648 0.83692 0.68256 0.50000
5   3   0.99954 0.99328 0.98438 0.96922 0.91296 0.81250
5   4   0.99999 0.99968 0.99902 0.99757 0.98976 0.96875
\end{filecontents}

% Skalierbare Schrift
\usepackage{lmodern}
    \newcommand\mini{\fontsize{2.5pt}{3pt}\selectfont}
       \newcommand\Mini{\fontsize{3.5pt}{3pt}\selectfont}

\usepackage{lipsum}
\begin{document}
% Pfeil aus Technisches Zeichnen
\usetikzlibrary{arrows.meta}
\tikzset{
  >={Triangle[length=0pt 9.0009,width=0pt 3.0003]},
}
\pgfplotsset{
  % override ``-stealth'' for open axes
  every non boxed x axis/.append style={
    x axis line style={->}
  },
  every non boxed y axis/.append style={
    y axis line style={->}
  },
  every non boxed z axis/.append style={
    z axis line style={->}
  }
}
% ==================

\pgfplotsset{mystyle/.style={%
  % allgemein
%  ybar interval,%=10pt, ?  % Balkendiagramm
  /pgf/number format/use comma, % Kommas als Zahlentrennzeichen
  % x und y
  axis lines = middle,% < Achsenstil so früh wie möglich einstellen - er ändert weitere Optionen
  axis line style={->}, %y axis line style={-latex}, 
  ticklabel style = {font=\tiny},
  major tick length =2pt, 
  % x
  xmin=0,
  xmax=5, 
  xtick=data,
%  hide obscured x ticks=false,% <- zum Anzeigen des Ticklabels 0 % TUT NET
  xlabel style={anchor=north, font=\Mini,},
  enlarge x limits={abs=10pt,upper},% <- damit die Pfeilspitze an der y-Achse sichtbar ist
  xticklabel style = {yshift=0.5pt, font=\mini},
  % y
  ymin=0,
  ymax=1,
  ytick = {0.2, 0.4, ..., 1},
  ytickmax=1,% <- kein Tick oberhalb von y=.9
  ylabel style={anchor=north west, yshift=1ex, font=\Mini,},
  enlarge y limits={abs=10pt,upper},
  yticklabel style = {xshift=0.5pt, font=\mini},
}}%

\begin{tikzpicture}[
scale=1.0,
%inner sep=2pt, 
%outer sep=2pt, 
]
\begin{axis}[mystyle, 
  width=3.5cm, height=2.5cm,
  xlabel={$k$},
  ylabel={$P(X \leq k)$},
]
  \addplot[draw=gray, thin,  mark=*, mark size=0.75pt, mark options = {draw=black, fill=white, thin}] table [x index=1, y index=6] {data.csv};
   \addplot[draw=black, ultra thin, densely dashdotted, domain=0:5.5] {1};
  \end{axis} 
\end{tikzpicture}
\end{document}


01/23/2016 03:30 AM
Wie realisiere ich eine Pfeilspitze wie beim Technischen Zeichnen zur Verwendung in TikZ / pgfplots

Ich bin mir nicht sicher, aber ich glaube die Pfeilspitze (gleichschenkliges Dreieck) soll 3mal so lang wie breit sein und 3mal so dick wie die Linienbreite.

Wie kann ich so einen Pfeil erstellen und bei TikZ- bzw. pgfplots-Diagrammen, z.B. Koordinatensystem verwenden.

alt text

alt text

alt text

Open in Online-Editor
\documentclass[varwidth, border=2pt]{standalone}
%\documentclass[paper=a5]{scrartcl}
\usepackage{tikz}

\begin{document}

\def\x{0.4pt}
\begin{tikzpicture}[
%thick, 
scale=20,
]
\draw (0,1*\x) -- (0,-1*\x)  -- (2.5*\x,0) -- cycle ;

\draw[-latex, line width=0.4pt] (0,0) -- (3.0pt, 0);

%\def\x{0.4pt}
%\draw[yshift =-2cm, line width=\x,] (0,0) -- (9*\x, 0);
%\draw[yshift =-2cm, line width=\x,] (0,1.5*\x) -- (0,-1.5*\x);

\end{tikzpicture}

\end{document}


01/23/2016 02:25 AM
Wie stelle ich passende (kleinere) Schriftgröße bei pgfplots ein?

Ich bekomme die Schrift an der y-Achse nicht kleiner; bzgl. dr Vorgabe width=3.5cm, height=2.5cm, - diese Maße soll das Bild insgesamt haben :(

SOLL: Ich möchte in etwa diesen Style erreichen (Wolfram mathematica).

alt text

IST:

alt text

Open in Online-Editor
\documentclass[border=2pt, varwidth]{standalone}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents}{data.csv}
5   0   0.59049 0.32768 0.23730 0.16807 0.07776 0.03125
5   1   0.91854 0.73728 0.63281 0.52822 0.33696 0.18750
5   2   0.99144 0.94208 0.89648 0.83692 0.68256 0.50000
5   3   0.99954 0.99328 0.98438 0.96922 0.91296 0.81250
5   4   0.99999 0.99968 0.99902 0.99757 0.98976 0.96875
\end{filecontents}

\makeatletter
\newcommand{\srcsize}{\@setfontsize{\srcsize}{2pt}{5pt}}
\makeatother
\usepackage{lipsum}

\begin{document}

\tiny

\lipsum[1]

\bigskip

\srcsize

\lipsum[1]

\pgfplotsset{mystyle/.style={%
  % allgemein
%  ybar interval,%=10pt, ?  % Balkendiagramm
  /pgf/number format/use comma, % Kommas als Zahlentrennzeichen
  % x und y
  axis lines = middle,% < Achsenstil so früh wie möglich einstellen - er ändert weitere Optionen
  axis line style={-latex}, 
  ticklabel style = {font=\tiny},
  major tick length =2pt, 
  % x
  xmin=0,
  xmax=5, 
  xtick=data,
%  hide obscured x ticks=false,% <- zum Anzeigen des Ticklabels 0 % TUT NET
  xlabel style={anchor=north, font=\tiny,},
  enlarge x limits={abs=10pt,upper},% <- damit die Pfeilspitze an der y-Achse sichtbar ist
  xticklabel style = {yshift=1.5pt, font=\srcsize},
  % y
  ymin=0,
  ymax=1,
  ytick = {0.2, 0.4, ..., 1},
  ytickmax=1,% <- kein Tick oberhalb von y=.9
  ylabel style={anchor=north west, yshift=1ex, font=\tiny,},
  enlarge y limits={abs=10pt,upper},
  yticklabel style = {xshift=2pt, font=\srcsize},
}}%

\begin{tikzpicture}[scale=1.0]
\begin{axis}[mystyle, 
  width=3.5cm, height=2.5cm,
  xlabel={k},
  ylabel={$P(X \leq k)$},
]
  \addplot[draw=gray, thin,  mark=*, mark size=1.0075pt, mark options = {draw=black, fill=white, thin}] table [x index=1, y index=6] {data.csv};
   \addplot[draw=black, ultra thin, densely dashed, domain=0:5.5] {1};
  \end{axis} 
\end{tikzpicture}
\end{document}


01/22/2016 08:34 PM
pgfplots-Graph: Null auf x-Achse anzeigen, bei xticks=data

Was muss ich machen, damit noch die 0 auf der x-Achse angezeigt wird?

alt text

Open in Online-Editor
\documentclass[border=2pt, varwidth]{standalone}
\usepackage{pgfplots}
%\pgfplotsset{compat=1.13}% derzeit aktuelle Version
\pgfplotsset{compat=newest}% Overleaf hat nur Version 1.11

\usepackage{filecontents}
\begin{filecontents}{data.csv}
0   0.5905  0.3277  0.2373  0.1681  0.0778  0.0313
1   0.9185  0.7373  0.6328  0.5282  0.3370  0.1875
2   0.9914  0.9421  0.8965  0.8369  0.6826  0.5000
3   0.9995  0.9933  0.9844  0.9692  0.9130  0.8125
4   1.0000  0.9997  0.9990  0.9976  0.9898  0.9688
5
\end{filecontents}

\begin{document}

\pgfplotsset{mystyle/.style={%
  % allgemein
%  ybar interval,%=10pt, ?  % Balkendiagramm
  /pgf/number format/use comma, % Kommas als Zahlentrennzeichen
  % x und y
  axis lines = middle,% < Achsenstil so früh wie möglich einstellen - er ändert weitere Optionen
  axis line style={-latex}, 
  ticklabel style = {font=\tiny},
  major tick length =2pt, 
  % x
  xmin=0,
  xmax=5, 
  xtick=data,
 % hide obscured x ticks=false,% <- zum Anzeigen des Ticklabels 0 % TUT NET
  xlabel style={anchor=north, font=\tiny,},
  enlarge x limits={abs=10pt,upper},% <- damit die Pfeilspitze an der y-Achse sichtbar ist
  % y
  ymin=0,
  ymax=1,
  ytickmax=1,% <- kein Tick oberhalb von y=.9
  ylabel style={anchor=north west, yshift=1ex, font=\tiny,},
 enlarge y limits={abs=10pt,upper},
}}%

\begin{tikzpicture}[scale=2.0]
\begin{axis}[mystyle, 
  width=3.5cm, height=2.5cm,
  xlabel={k},
  ylabel={$P(X \leq k)$},
]
  \addplot[draw=gray, ultra thin,  mark=*, mark size=1.0075pt, mark options = {draw=black, fill=white, thin}] table [y index=6] {data.csv};
   \addplot[draw=black, ultra thin, densely dashed, domain=0:5.5] {1};
  \end{axis} 
\end{tikzpicture}
\end{document}


01/12/2016 04:00 PM
Wie stelle ich bei pgfplots ein, welche Tabellenspalte geplottet wird?

Wie stelle ich bei pgfplots ein, welche Tabellenspalte geplottet wird? Scheints wird die 2. Spalte unvollständig geplottet (mit 1. Spalte als x-Werte).

alt text

Open in Online-Editor
\documentclass[border=2pt, varwidth]{standalone}
%\documentclass[]{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{amsmath, amssymb, amsfonts}

\usepackage{filecontents}
\begin{filecontents}{data.csv}
0   0.5905  0.3277  0.2373  0.1681  0.0778  0.0313
1   0.9185  0.7373  0.6328  0.5282  0.3370  0.1875
2   0.9914  0.9421  0.8965  0.8369  0.6826  0.5000
3   0.9995  0.9933  0.9844  0.9692  0.9130  0.8125
4   1.0000  0.9997  0.9990  0.9976  0.9898  0.9688
\end{filecontents}

\begin{document}
\pgfplotsset{compat=newest}
\pgfplotsset{mystyle/.style={%
% allgemein
ybar interval,%=10pt, ?  % Balkendiagramm
/pgf/number format/.cd, use comma, % Kommas als Zahlentrennzeichen
%1000 sep={},
grid=none,
% x
xmin=0,
xmax=5, 
xtick=data, 
xlabel style={anchor=north},
enlarge x limits={lower,rel=1.25},
%symbolic x coords={46,50.1},  %?
every axis x label/.style={at={(current axis.south)},below=8mm},
% y
ymin=0,
ymax=1,
ylabel style={anchor=east, yshift=4pt},
%enlarge y limits=false,
%enlarge y limits={upper,rel=50.25}, % Dummer Effekt
% Legende
legend style={%
at={(1,1), anchor=south east},anchor=south, legend columns=-1}, 
% x und y
axis lines = middle,
axis line style={-latex}, 
ticklabel style = {font=\tiny},
%xticklabel style = {font=\tiny,yshift=0.5ex}
% Noden
%nodes near coords, 
%nodes near coords align={vertical}, 
%every node near coord/.append style={anchor=mid west,rotate=60},
}}%

\begin{tikzpicture}[scale=2.0, font=\tiny,]
\begin{axis}[mystyle, 
width=3.5cm, height=2.5cm,
xlabel={k},
ylabel={$P(X \leq k)$},
]
\addplot[draw=black, thin, fill=red!50] table [] {data.csv};
\end{axis} 
\end{tikzpicture}

\end{document}


01/09/2016 03:47 PM
pgfplots Bug (?) - Wieso erscheint y-Achse thick?

Wieso erscheint y-Achse thick, obwohl nirgendswo thick angegeben?

alt text

Open in Online-Editor
\documentclass[border=2pt]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath, amssymb}
\pgfplotsset{compat=1.10}

\begin{document}
\begin{tikzpicture}
\begin{axis}[font=\footnotesize, 
title={\normalsize $s(t) = 20 - 10t + 100t^2 - 30t^3$ },
axis lines = middle,
axis line style = {-latex},
% x
xtick={0,1,...,5}, 
samples     = 200,
xmin = 0, xmax=4,
% y
ymin = 0, ymax=170,
enlarge x limits={abs=0.5,upper},
enlarge y limits={abs=5,lower},
xlabel={ $t [\text{h}]$},
xlabel style={anchor=north},
ylabel={$s(t) [\text{km}]$},
ylabel style={anchor=east},
]
\addplot[blue,domain=0:3.5] {20 - 10*x + 100*x^2 - 30*x^3)};
\end{axis}
\end{tikzpicture}
\end{document}


12/29/2015 08:28 PM
Wie kann ich beim iterativen Plot / Feigenbaumdiagramm einen Spy ergänzen?

Graph von hier


Geht das? Leider scheitern meine Versuche.

alt text

alt text

Open in Online-Editor
% arara: lualatex
\author{stefan_k}
\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
    \usetikzlibrary{spy}
\usepackage{luacode}
\begin{luacode*}
  function logistic()

    local function map(r,x)
      return r*x*(1-x)
    end

    for r = 2.5,4,0.005 do
      x = 0.1
      for i = 1, 200 do
        x = map(r,x)
      end
      for i = 1, 250 do
        x = map(r,x)
        tex.sprint("("..r..","..x..")")
      end
    end
  end
\end{luacode*}
\begin{document}
\begin{tikzpicture}[spy using outlines={rectangle, red, magnification=5,
size=1.5cm, connect spies}]
\begin{axis}[tick label style={font=\tiny}, axis lines=middle]
        \edef\logisticplot{\noexpand\addplot [color=black!10, mesh, only marks,
      mark size = 0.05pt, opacity = 0.1] coordinates{ \directlua{logistic()} };}
    \logisticplot
\draw[blue] (axis cs: 0,0) -- (axis cs: 2,0.5);
\end{axis}
%
% Problem: 
%
%\spy [blue, size=0.5cm] on (axis cs: 3.55,.5) in node [right] at (0,-5.25); 
%
%
%
\end{tikzpicture}
\end{document}


12/28/2015 06:00 PM
pgfplots: Wie kann ich x und ylabel mittels einer Dekoration platzieren?

Mir fällt auf, dass -teils auch bei komplizierten Lösungen, die ich gesehen habe- x und ylabel oft nicht gescheit platziert sind. Wie kann ich das mit der Lib decorations verwirklichen.

alt text

Open in Online-Editor
\documentclass[border=2pt, varwidth]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath, amssymb}
\usetikzlibrary{arrows, decorations.markings}
\pgfplotsset{compat=1.10}

\begin{document}

\begin{tikzpicture}[
postaction={decoration = {markings, mark = at position 0.9 with {\node[below, red] {A};}}}
]
\begin{axis}[
    title={\normalsize $f(x) = \ln(x^2-9), ~~ \mathbb{D}_f = \mathbb{R}     
\setminus [-3;3]$ },
      axis y line = middle,
    axis x line = middle,
      axis line style = {-latex, thick},
    xtick={-10,...,10}, 
%   ytick={-10,...,10}, 
      samples     = 200,
      xmin = -10.5, xmax=10.5,
      ymin = -2, ymax=5,
      enlarge x limits={abs=0.5,upper},
      enlarge y limits={abs=5,lower},
      xlabel={\normalsize $x$},
      xlabel style={xshift=0.25cm, yshift=-0.5cm},
      ylabel={\normalsize $y$},
      ylabel style={xshift=-0.5cm, yshift=0.25cm},
    ]
    \addplot[blue,  thick, domain=-3:-9] {-x^2+1}; % WIrd nicht gezeichnet?
    \addplot[blue,  thick, domain=-3:9] {ln(x^2-9)};
  \end{axis}
\end{tikzpicture}

\end{document}


12/24/2015 01:23 PM
pgfplots, Schnittpunkte finden und als Grundlage für neuen Plot benutzen.

Ich habe mehrere Linien in einem Diagramm erstellt. Wie kann ich jetzt die Schnittpunkte finden lassen (müssen nicht markiert werden) um diese dann als Grundlage für einen neuen Plot zu benutzen? Das Ziel ist eine einhüllende zu generieren und diese dann mit einer Farbe zu füllen (das krieg ich inzwischen hin). Hier mein Beispiel:

Open in Online-Editor
\documentclass{scrreprt}
\usepackage{pgfplots} 
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\centering
\begin{axis}
    [
        width=15cm,
        title=V-n,
        xlabel={equivalent Airspeed [kts]},
        ylabel={Load Factor},
        ymin=0, ymax=5,
        xmin=0, xmax=100
        ]
\addplot [blue,domain=0:100]{(1.2*1.225*23)/(2*2525.15*9.81)*x^2};
\addplot [red] coordinates{(0,4.4)(330,4.4)};
\addplot [dashed]coordinates {(74.41,0)(74.41,6)}node[pos=0.15,right]{$V_S$};
\end{axis}
\end{tikzpicture}
\end{document}

Mein ziel ist es, die Schnittpunkte zwischen der Kurve und der roten Linie sowie der kurve und der gestrichelten Linie zu finden und zwischen den beiden Punkten, entlang der Kurve, eine neue Linie zu plotten. Geht das überhaupt?

alt text


12/08/2015 09:29 PM
PGF Plot - Mittellinie, die Null und weitere Linien einfügen.

Open in Online-Editor

0.540   -0.24
0.528   -0.21
0.515   -0.18
0.500   -0.15
0.483   -0.12
0.465   -0.09
0.445   -0.06
0.421   -0.03
0.393    0.
0.363   0.03
0.353   0.06
0.371   0.09
0.393   0.12
0.411   0.15
0.425   0.18
0.436   0.21
0.445   0.24
0.452   0.27
0.456   0.3
0.459   0.33
0.459   0.36
0.457   0.39
0.452   0.42

So sieht meine asdf.csv-Datei aus.

Minimalbeispiel wäre:

Open in Online-Editor
\documentclass[12pt,a4paper]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{textcomp}
\usepackage{amsfonts}
\usepackage{pgfplots}

\begin{document}
\begin{figure}[h]
    \centering
    \begin{tikzpicture}
    \begin{axis}[ymin=0,ymax=0.6,xmin=-0.3,xmax=0.5,
    width=0.9\textwidth,
    height=0.3\textheight,
    title={Grenzformänderungsdiagramm},
    xtick={-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.4,0,5},
    ytick={0,0.1,0.2,0.3,0.4,0.5,0.6},
    xlabel={$Eps_2$},
    ylabel={$Eps_1$}    
]
    \addplot[very thick,no marks] table {asdf.csv};
    \end{axis}
    \end{tikzpicture}
    \caption{TEST}
    \label{asdf}
\end{figure}
\end{document}

Ich will, dass das Koordinatensystem ca wie ein " + " aussieht, sprich, dass man die oberen 2 Quadranten sieht. rechte positive X und linke negative X und in der Mitte getrennt durch Y-Achse. Desweiteren soll die 0 angezeigt werden und nicht ganz so starke Linien eingefügt werden, die mir zeigen, wo z.B. die einzelnen Punkte liegen (x,y-Achse) Danke!


12/02/2015 12:34 PM
Wie kann ich zwei Bilder mit Rahmen auf einem Diagramm legen?

Moin zusammen,

bei folgenden, beiden Digrammen möchte ich statt schrittliche Beschreibung für Graphen zwei Bilder einfügen. Das heißt, dass ich erstens zwei Kreise jeweils in einem rechteckigen Rahmen mit weißem Hintergrund einfügen und danach als Beschreibung für beide Kurve auf jeweilige Kurve legen möchte (blaue Kurve gehört zum blauen Kreis und rote Kurve zum roten Kreis). Kann jemand mir damit helfen?

Viele Dank!

Open in Online-Editor
\documentclass{article}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=4.521in,
height=3.566in,
at={(0.758in,0.481in)},
scale only axis,
separate axis lines,
every outer x axis line/.append style={black},
every x tick label/.append style={font=\color{black}},
xmin=0,
xmax=6,
every outer y axis line/.append style={black},
every y tick label/.append style={font=\color{black}},
ymin=0,
ymax=900,
axis background/.style={fill=white},
legend style={legend cell align=left,align=left,draw=black}
]
\begin{scope}
\draw[fill=red!, opacity=0.5] (300,500) circle (20pt);
\end{scope}

\draw[fill=blue!, opacity=0.5] (200,400) circle (20pt);
\addplot [color=blue,solid]
table[row sep=crcr]{%
    0   1\\
    1   2.71828182845905\\
    2   7.38905609893065\\
    3   20.0855369231877\\
    4   54.5981500331442\\
    5   148.413159102577\\
    6   403.428793492735\\
};
\addlegendentry{case 1};
\addplot [color=blue,solid]
table[row sep=crcr]{%
    0   2\\
    1   5.43656365691809\\
    2   14.7781121978613\\
    3   40.1710738463753\\
    4   109.196300066288\\
    5   296.826318205153\\
    6   806.85758698547\\
};
\addlegendentry{case 2};
\addplot [color=red,solid,forget plot]
table[row sep=crcr]{%
    0   2\\
    1   5.43656365691809\\
    2   14.7781121978613\\
    3   40.1710738463753\\
    4   109.196300066288\\
    5   296.826318205153\\
    6   806.85758698547\\
};
\end{axis}
\end{tikzpicture}%
\end{document}


12/01/2015 04:27 PM
Wie kann ich Bilder in Legende eines Diagramms einfügen?

Hallo zusammen,

ich will beispielweise bei der folgenden Grafik statt case 1 und case 2 als Beschriftung bei Legende zwei Bilder einfügen (in diesem Fall zwei Kreise). Das heißt, ich will sagen, dass blaues Diagramm zum blauen Kreis und rotes zum roten Diagramm. Kann jemand mir damit helfen? Vielen Dank im Voraus!

Open in Online-Editor
\documentclass{article}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=4.521in,
height=3.566in,
at={(0.758in,0.481in)},
scale only axis,
separate axis lines,
every outer x axis line/.append style={black},
every x tick label/.append style={font=\color{black}},
xmin=0,
xmax=6,
every outer y axis line/.append style={black},
every y tick label/.append style={font=\color{black}},
ymin=0,
ymax=900,
axis background/.style={fill=white},
legend style={legend cell align=left,align=left,draw=black}
]
\draw[fill=red!, opacity=0.5] (300,500) circle (20pt);
\draw[fill=blue!, opacity=0.5] (200,400) circle (20pt);
\addplot [color=blue,solid]
 table[row sep=crcr]{%
0   1\\
1   2.71828182845905\\
2   7.38905609893065\\
3   20.0855369231877\\
4   54.5981500331442\\
5   148.413159102577\\
6   403.428793492735\\
};
\addlegendentry{case 1};
\addplot [color=blue,solid]
table[row sep=crcr]{%
0   2\\
1   5.43656365691809\\
2   14.7781121978613\\
3   40.1710738463753\\
4   109.196300066288\\
5   296.826318205153\\
6   806.85758698547\\
};
\addlegendentry{case 2};
\addplot [color=red,solid,forget plot]
  table[row sep=crcr]{%
0   2\\
1   5.43656365691809\\
2   14.7781121978613\\
3   40.1710738463753\\
4   109.196300066288\\
5   296.826318205153\\
6   806.85758698547\\
};
\end{axis}
\end{tikzpicture}%
\end{document}