Seite 1 von 2
tikz Symbol
Verfasst: Fr 4. Feb 2011, 15:50
von NTNU
Hallo zusammen,
ich würde gerne Balkendiagramme symbolisch in den Legenden meiner Graphen kurz darstellen. Dabei hab ich mir sowas vorgestellt wie in den beiden angehängten .jpgs. Für kleine Balkensymbole ohne die Questriche habe ich auch schon etwas gefunden, siehe Minimalbeispiel. Besonders schön ist, dass ich die Farbe jeweils eigens definieren kann.
Mir fehlen also jetzt nur noch Rechtecke mit den Querstreifen, aber das bekomme ich leider nicht hin.
Hat von euch einer Rat?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\newcommand{\myrec}[2]{\tikz[scale=0.65] \draw[draw=#1,fill=#2] (0,0) rectangle (2em,1em);}
Sowas brauche ich hier (\myrec{black}{yellow}), allerdings mit Querstreifen\ldots
\end{document}
Verfasst: Fr 4. Feb 2011, 16:01
von iTob
Schau mal in die TikZ-Doku auf die S. 162, 393, 644 und besonders 89:
Do not use background patterns, like a crosshatch or diagonal lines, instead of colors. They distract. Background patterns in information graphics are evil.
Wenn es dir nur um zwei Linien geht, kannst du die auch mit der Hand zeichen oder mit eine \foreach-Schleife.
Hilft das?
Verfasst: Fr 4. Feb 2011, 16:07
von NTNU
Danke, ich bin nur leider völlig überforder weil ich keine Ahnung habe wie ich das anwenden muss. Ich hab absolut null Erfahrung mit tikz

Verfasst: Fr 4. Feb 2011, 16:10
von iTob
Ah. Ok.
Ich bastel dir mal was. Moment …
Verfasst: Fr 4. Feb 2011, 16:33
von iTob
So, fertig:
\documentclass{article}
\usepackage{tikz}
% alt (deine Lösung)
\newcommand{\myrec}[2]{\tikz[scale=0.65] \draw[draw=#1,fill=#2] (0,0) rectangle (2em,1em);}
% neu
\newcommand{\Myrec}[3][2.5]{% optionales Argument für Skalierung der Schraffur
\tikz[scale=0.65,baseline]{% Die Option "baseline" setzt das Bild auf die Grundlinie
\def\hoehe{1em}% Höhe der Box angeben
\def\breite{2em}% Breite der Box angeben
\path [draw=#2,fill=#3] (0,0) rectangle (\breite,\hoehe);
\def\versatz{-0.5}% um die Schraffur zu verschieben
\def\skaliere{#1}% Um die Schraffur zu skalieren
\def\dy{0.2}% um die Steigung der Schraffur zu ändern
\begin{scope}
\clip (0,0) rectangle (\breite,\hoehe); % nochmal das Recheck zum beschneiden der Schraffur
\foreach \x in {0,0.1,...,10}% Schleife beginnen
\def\xpos{\x*\skaliere+\versatz}% x-Position berechnen
\path [draw=#2] (\xpos,0) -- (\xpos+\dy,1em);% Schraffur zeichen
% Schleife ende
\end{scope}
}}% zweite Klammer für \tikz
\begin{document}
Sowas brauche ich hier (\myrec{black}{yellow}), allerdings mit Querstreifen\ldots
\Myrec{black}{yellow}\quad\Myrec{red}{yellow}\quad\Myrec[1]{black}{white}\quad\Myrec[0.5]{black}{white}
\end{document}
Wenn du fragen dazu hast, melde dich einfach!
LG
Tobi
PS: Es ist nicht auszuschließen, dass es auch elegantere und einfachere Lösungen gibt

Verfasst: Fr 4. Feb 2011, 16:45
von NTNU
Ach du je, du bist der Wahnsinn.
Das hätte ich niemals alleine hinbekommen, vielen vielen Dank

! Genau das hab ich gewollt\ldots
Ich möchte mal wissen, in wie vielen Diplom-, Bachelor-, Masterarbeiten und Dissertationen dieses Forum eigentlich ganz oben auf der Danksagung hätte stehen müssen.

Verfasst: Fr 4. Feb 2011, 17:18
von iTob
Na du hättest das auch schaffen können. Du hättest nur die TikZ-Doku durcharbeiten müssen

, die ist nämlich sehr gut gemacht – wie das Paket auch!
Hast du denn wenigstens verstanden, was ich gemacht habe? Für’s nächste mal …
Verfasst: Fr 4. Feb 2011, 17:20
von NTNU

, das wäre mit Sicherheit möglich gewesen. Nur ist in zwei Wochen Abgabe, und meine (jetzt schönen, kleinen, Minibalken) sind da gerade nicht mein Hauptproblem sondern nur eins vieler kleiner iTüpfelchen

Verfasst: Fr 4. Feb 2011, 17:41
von iTob
Ja schon klar. Hab ja gern geholfen!
Verfasst: Sa 5. Feb 2011, 07:32
von NTNU
Hey Tobi,
mir ist nochmal was eingefallen. Ich weiß ja nicht wie viel Arbeit das für dich ist, sonst gibt einfach bescheid, wenns nicht klappt oder du keine Zeit/Lust hast...
Also es wäre schön, wenn ich eine zweite Art von Symbol zur Hand hätte. Dabei wäre es cool, wenn zB für einen Kreis, ein Quadrat oder einen Diamand (ich weiß nicht ob sich der Code einfach übertragen ließe) ich die eine Hälfte anders anfärben kann als die andere, waagerecht und quer.
Wenn du spontan eine Idee oder Lust am Basteln hast, immer her damit

Schönes WE