Anzeige:
Ergebnis 1 bis 3 von 3

Thema: pgfplot diagramm verschießt innerhalb eines tikz node

  1. #1
    Hoste
    Gast

    pgfplot diagramm verschießt innerhalb eines tikz node

    Hi,

    dieses Forum hat mir immer sehr geholfen, ich dachte schon ich bin ganz gut in LaTeX, bis gestern.

    Ich will ein Plakat erzeugen mit farbigen Kästen, dafür nehme ich Tikz nodes innerhalb einer multicolumns Umgebung. Klappt alles, außer wenn ich in einen node mit vorgeschriebener text width=\columnwidth ein pgfplot diagramm setzen will.

    Hier mein Minibeispiel, mit documentclass a0poster. Bei der ersten Box habe ich dilettantisch was hingepfuscht (\\[xxem]) und das Diagramm in einen node ohne text width=xxx gesetzt, muss aber immer die Abstände kontrollieren. Bei der zweiten Box ist der Fehler, aber irgendwie so müsste es doch eigentlich gehen. Vielleicht hat jemand ne Idee.

    Code:
    \documentclass{a0poster}
    
    \usepackage[UKenglish]{babel}		
    \usepackage[latin1]{inputenc}	% ß, ä, ö, ü
    \usepackage[OT1]{fontenc}		% font coding
    \usepackage{helvet}
    \usepackage{multicol}
    \usepackage{pgfplots}			% diagramme
    \usepackage{tikz}			% tikz figures
    \usetikzlibrary{positioning}		% advanced node positioning
    
    \tikzstyle{header}=[draw, line width=5pt, text width=\columnwidth-.25\columnsep-2em, font=\huge \bfseries, inner ysep=1em, inner xsep=1em,
    minimum height=4em]
    \tikzstyle{box}=[below= of header, text width=\columnwidth-.25\columnsep-2em, text justified, font=\large, draw, line width=5pt,
    inner ysep=1em, inner xsep=1em]
    
    		
    \setlength{\columnsep}{1cm}		%columndistance
    \setlength{\columnseprule}{0pt} 		%vertical line thickness
    
    \begin{document}
    
    \begin{multicols}{3}
    
    %BOX%hingepfuscht%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \begin{minipage}{\columnwidth}
    \begin{tikzpicture} [node distance=0mm and 0mm]
    \node(header)[header]{Methods};
    \node(box)[box]{
    Bla bla bla bla bla bla bla bla bla bla bla \\[16em] %%HERE Work-around
    };
    \node[below=-20em of box]{                           %%HERE Work-around
    \begin{tikzpicture}
    \pgfplotsset{width=0.4\columnwidth, compat=1.3}
    \begin{semilogxaxis}[title=Title, legend pos=outer north east,
    legend style={cells={anchor=west}},xlabel={Shear rate (1/s)},
    ylabel={Viscosity (Pa\,s)}]
    \addplot[black, solid, no marks, domain=0.01:1e5, samples=100]{0.00345+(0.056-0.00345)*(1+(3.313*x)^2)^((0.3568-1)/2)};
    \addlegendentry{Carreau}
    \addplot+[black, dashed, no marks, domain=0.01:647, samples=100]{0.0148*x^(0.775-1)};
    \addlegendentry{Power-law}	
    \addplot+[black, dashed, no marks, domain=647:1e5, samples=100]{0.00345};	
    \end{semilogxaxis}
    \end{tikzpicture}
    };
    \end{tikzpicture}
    \end{minipage}
    
    %BOX%wie es sein sollte%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \begin{minipage}{\columnwidth}
    \begin{tikzpicture} [node distance=0mm and 0mm]
    \node(header)[header]{Methods};
    \node(box)[box]{
    Bla bla bla bla bla bla bla bla bla bla bla \\
    \begin{tikzpicture}
    \pgfplotsset{width=0.4\columnwidth, compat=1.3}
    \begin{semilogxaxis}[title=Title, legend pos=outer north east,
    legend style={cells={anchor=west}},xlabel={Shear rate (1/s)},
    ylabel={Viscosity (Pa\,s)}]
    \addplot[black, solid, no marks, domain=0.01:1e5, samples=100]{0.00345+(0.056-0.00345)*(1+(3.313*x)^2)^((0.3568-1)/2)};
    \addlegendentry{Carreau}
    \addplot+[black, dashed, no marks, domain=0.01:647, samples=100]{0.0148*x^(0.775-1)};
    \addlegendentry{Power-law}	
    \addplot+[black, dashed, no marks, domain=647:1e5, samples=100]{0.00345};	
    \end{semilogxaxis}
    \end{tikzpicture}
    };
    \end{tikzpicture}
    \end{minipage}
    
    \end{multicols}
    \end{document}

  2. #2
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    der fehler liegt bei

    Code:
     text width=\columnwidth-.25\columnsep-2em
    in denier box definition.
    irgendwas daran scheint pdfplots nicht zu gefallen, bzw die falsche laenge wird verwendet und dadurch sieht das diagramm so komisch aus.

    wie man das zuruecksetzt muss ich mal schauen. vielleicht hat ja noch jemand anderes eine eingebung.

    gruss

    EDIT:

    und schon kam die eingebung. text width=

    Code:
    \documentclass{a0poster}
    
    \usepackage[UKenglish]{babel}		
    \usepackage[latin1]{inputenc}	% ß, ä, ö, ü
    \usepackage[T1]{fontenc}		% font coding
    \usepackage{helvet}
    \usepackage{multicol}
    \usepackage{pgfplots}			% diagramme
    \usepackage{tikz}			% tikz figures
    \usetikzlibrary{positioning}		% advanced node positioning
    
    \tikzstyle{header}=[draw, line width=5pt, text
    width=\linewidth-.25\columnsep-2em, font=\huge \bfseries, inner ysep=1em,
    inner xsep=1em,
    minimum height=4em]
    
    \tikzstyle{box}=[
    text width=\linewidth-.25\columnsep-2em,
    text justified,
    font=\large,
    draw,
     line width=5pt,
    inner ysep=1em,
     inner xsep=1em]
    
    		
    \setlength{\columnsep}{1cm}		%columndistance
    \setlength{\columnseprule}{0pt} 		%vertical line thickness
    
    \begin{document}
    
    \begin{multicols}{3}
    
    %BOX%hingepfuscht%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%
    \begin{minipage}{1\columnwidth}
    \begin{tikzpicture} [
    node distance=0mm and 0mm
    ] 
    \node(headerbox)[header,baseline]{Methods};
    \node(firstbox)[box,below=of headerbox]{
    Bla bla bla bla bla bla bla bla bla bla bla \\%[16em] %%HERE Work-around
    };
    \node[box,below=of firstbox]{
                            %%HERE Work-around
    \begin{tikzpicture}[text width=]
    % \draw (0,0)-- (3,0);
     \pgfplotsset{width=.5\linewidth, compat=1.3,text width=.3\columnwidth}
    \begin{semilogxaxis}[title=Title, legend pos=outer north east,
    legend style={cells={anchor=west}},xlabel={Shear rate (1/s)},
    ylabel={Viscosity (Pa\,s)}]
    \addplot[black, solid, no marks, domain=0.01:1e5,
    samples=100]{0.00345+(0.056-0.00345)*(1+(3.313*x)^2)^((0.3568-1)/2)};
    \addlegendentry{Carreau}
    \addplot+[black, dashed, no marks, domain=0.01:647,
    samples=100]{0.0148*x^(0.775-1)};
    \addlegendentry{Power-law}	
    \addplot+[black, dashed, no marks, domain=647:1e5, samples=100]{0.00345};	
    \end{semilogxaxis}
    \end{tikzpicture}
    };
    \end{tikzpicture}
    \end{minipage}
    \end{multicols}
    \end{document}
    das tut zumindest nach dem ersten test ganz gut
    Geändert von bobmalaria (18-02-2011 um 12:35 Uhr)
    Mein Ball ist umgefallen

  3. #3
    Hoste
    Gast

    gelöst

    Super Vielen Dank.

    Also es scheint so das \columnwidth nicht funtioniert. Habe alles auf \linewidth umgestellt und dann kann man einfach in jedem node Diagramme einfügen und hinter einander seinen code schreiben.
    Mit:

    Code:
    ...
    \begin{tikzpicture}[text width=, inner ysep=0.25ex, inner xsep=0.25ex]
    \pgfplotsset{width=.4\linewidth, compat=1.3}
    ...
    klappt alles und ich brauche keinen zusätzlichen node den ich per Hand durch die Gegend schieben muss. Das inner xsep und ysep brauche ich nur damit das Diagramm schön kompakt bleibt.

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •