Passend zum OP

Passend zum OP

Inspiriert von der folgenden Grafik habe ich versucht, diese mit Tikz nachzubilden. Ich möchte sie in einigen Details verändern: Bildbeschreibung hier eingeben

  1. Der Rand des farbigen Hintergrunds sollte homogen sein.
  2. Ich möchte die Bindungen zwischen den Aminosäuren nicht, ich bevorzuge, dass sie getrennt sind

Hier ist mein erster Versuch:

\documentclass{standalone}%
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri}
\usepackage{chemfig,xstring}
\begin{document}
\setatomsep{2.5em}
\setcrambond{2pt}{}{}
\begin{tikzpicture}[
 point/.style={circle,draw=none,minimum size=#1},
 point/.default=0pt % default Wert für minimum size bei point]
 \foreach \anfang/\ende/\farbe in { 25/100/green!60,104/170/orange!60,174 /254/red!60, 258/314/yellow!60, 318/381/blue!60}
\draw[fill=\farbe,draw=none] (0,0) -- (\anfang:12cm) arc (\anfang:\ende:12cm);
\draw[fill=white,draw=none] (0,0) circle (6cm);

% mit count=\i werden die Kreise nummeriert
% der zugehörige Winkel wird mit evaluate aus dieser Nummer berechnet
% insgesamt werden (bis zu) 20 Kreise auf 360 Grad gleichmäßig verteilt
\foreach[count=\i,evaluate=\i as \angle using (\i-1)*360/20] \text in {%
  1,2,3,4,\begin{tiny}\schemestart \chemnameinit{}\chemname{\chemfig{C(=[3]O)(-[1]OH)(-[6]CH_2(-[6]CH(-[5]NH_2)(-[7]C(=[6]O)(-[1]OH))))}}{Asparaginsäure\\Asp\\D} \schemestop\end{tiny},\begin{tiny}\schemestart \chemnameinit{} \chemname{\chemfig{CH(-[3]NH_2)(-[1]C(=[2]OH)(-[7]OH))(-[6]CH_2(-[6]C(=[5]O)(-[7]NH_2)))}}{Asparagin\\Asn\\N}\schemestop\end{tiny},7,8,9,10,11,12,13,14,15,16,17,18,19,20% Beschriftung der Kreise
}
\node[point=2.2em] (node\i) at (\angle:9) {\text};
\end{tikzpicture}
\end{document}

Ich habe die Struktur der Aminosäuren in eine andere TeX-Datei geschrieben und benutze normalerweise den \inputBefehl. Für das MWE sollten zwei Aminosäuren ausreichen.

Wie kann ich die Knoten/Aminosäuren so drehen, dass sie auf die Mitte des inneren Kreises zeigen?

Auch jede Alternativlösung ist willkommen.

Es tut mir sehr leid, aber ich kann meine eigene Frage nicht kommentieren, daher füge ich die Informationen hier hinzu.

@Alenanno, vielen Dank für Ihre sehr hilfreiche Antwort.

Ich möchte nicht die gleiche Grafik. Mir gefällt eigentlich, was ich bisher habe: alle Strukturformeln im farbigen Kreis mit annähernd gleichem Abstand zum Mittelpunkt.

Als nächstes folgt die äußere Bezeichnung (klein, polar (hydrophil) etc.). Wenn es möglich ist bzw. ich es hinbekomme, soll die Bezeichnung unterhalb der Strukturformel am inneren Rand des farbigen Kreises stehen.

Können Sie mir sagen, wie ich die einzelnen Knoten anspreche?

Wofür hast du den Befehl \aminoacid definiert? - Ich konnte ihn nicht aus dem MWE abrufen

grüßt

@Alenanno: Das ist genau das, was ich will! Vielen Dank! Gibt es neben der Schaltfläche „Akzeptiert“ eine Funktion, um Ihre Antwort zu markieren?

UPDATE: Dies ist meine endgültige Ausgabe, die perfekt zu mir passt. Besonderer Dank geht an Alenanno. Bildbeschreibung hier eingeben

Antwort1

Sie können rotate=\angle-90Ihrem vom Foreach gedruckten Knoten etwas hinzufügen.

Bearbeiten:Da du das Bild im OP nicht haben willst, hier deine korrigierte Version. Beachte, dass du die farbigen Bögen ohne „Schnitt“ mit einem weißen Kreis in der Mitte zeichnen kannst. Das habe ich korrigiert. Ich denke, die Beschreibungen sind so, wie du sie haben willst (deutsche Zeichen sollten korrigiert werden). Wenn du sie nicht farbig haben willst, entferne die Zeile \color{\farbe}aus dem Code.

Bearbeitung 2:Eine andere Version finden Sie unten.

Ausgabe

Bildbeschreibung hier eingeben

Code

\documentclass[margin=10pt]{standalone}%
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{calc, arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri, intersections, decorations.text}
\usepackage{pgfmath}
\usepackage{chemfig,xstring}

\tikzset{
    point/.style={minimum size=#1},
    point/.default=0pt,
    bent text/.style={postaction={
            decorate,
            decoration={
                text along path,
                reverse path=true,
                text align/align=center,
                text={| \Large\bfseries\color{\farbe}|#1}
            }
        }
    }
}


\def\colorlist{{"green!60", "orange!60", "red!60", "yellow!60", "blue!60"}}

\begin{document}
\setatomsep{2.5em}
\setcrambond{2pt}{}{}
\begin{tikzpicture}\tiny
 \foreach \anfang/\ende/\descr [count=\ix starting from 0] in {%
    25/100/{klein polar (hydrophil)},
    104/170/{groß, polar (hydrophil)},
    174/254/{mittiere Polarität},
    258/314/{groß unpolar},
    318/381/{klein, unpolar}}{
    \pgfmathsetmacro\farbe{\colorlist[\ix]}
    \fill[\farbe] (\anfang:6cm) -- (\anfang:12cm) arc (\anfang:\ende:12cm) -- (\ende:6cm) arc (\ende:\anfang:6cm);
    \path[bent text={\descr}] (\anfang:5cm) arc (\anfang:\ende:5cm);
}
% mit count=\i werden die Kreise nummeriert
% der zugehörige Winkel wird mit evaluate aus dieser Nummer berechnet
% insgesamt werden (bis zu) 20 Kreise auf 360 Grad gleichmäßig verteilt
\foreach [count=\i, evaluate=\i as \angle using int((\i-1)*360/20), evaluate=\i as \midangle using int((\i-1.5)*360/20), remember=\midangle as \lastmid (initially -27)] \text in {%
 1,2,3,4,
  \schemestart \chemnameinit{}\chemname{\chemfig{C(=[3]O)(-[1]OH)(-[6]CH_2(-[6]CH(-[5]NH_2)(-[7]C(=[6]O)(-[1]OH))))}}{Asparaginsäure\\Asp\\D} \schemestop,
  \schemestart \chemnameinit{} \chemname{\chemfig{CH(-[3]NH_2)(-[1]C(=[2]OH)(-[7]OH))(-[6]CH_2(-[6]C(=[5]O)(-[7]NH_2)))}}{Asparagin\\Asn\\N}\schemestop
  ,7,8,9,10,11,12,13,14,15,16,17,18,19,20% Beschriftung der Kreise
}{

\node[point=2.2em, rotate=\angle-90] (node\i) at (\angle:9) {\text};
}
\end{tikzpicture}
\end{document}

Passend zum OP

Hier ist eine andere Version, die zu der in Ihrem Bild passt.

Ausgabe

Bildbeschreibung hier eingeben

Code

\documentclass[margin=10pt]{standalone}%
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{calc, arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri, intersections, decorations.text}
\usepackage{pgfmath}
\usepackage{chemfig,xstring}

\definecolor{xlime}{RGB}{228,246,13}
\definecolor{xpink}{RGB}{245,109,175}
\definecolor{xorange}{RGB}{232,117,53}
\definecolor{xgreen}{RGB}{151,184,43}
\definecolor{xblue}{RGB}{144,181,236}

\tikzset{
    point/.style={minimum size=#1},
    point/.default=0pt,
    bent text/.style={postaction={
            decorate,
            decoration={
                text along path,
                reverse path=true,
                text align/align=center,
                text={| \Large\bfseries\color{\farbe}|#1}
            }
        }
    }
}

\newcommand\aminoacids[4][black]{
    \node[point=2.2em, minimum width=5cm,rotate=\angle-90, inner sep=2mm] (node#2) at (#3) {#4};
    \path[green, name path=around] (node#2.north west) -- (node#2.north east) -- (node#2.south east) -- (node#2.south west) -- cycle;
    \path[name path={tris#2}] (\midangle:12cm) -- (0,0) -- (\lastmid:12cm) -- cycle;
    \path[name intersections={of={tris#2} and around, name=i, total=\t}];
    \begin{scope}[on background layer]
        \filldraw[draw=black, fill=#1] (i-1) -- (i-2) -- (i-4) -- (i-3) -- cycle;
\end{scope}
}

\def\colorlist{{"xgreen", "xorange", "xpink", "xlime", "xblue"}}

\begin{document}
\setatomsep{2.5em}
\setcrambond{2pt}{}{}
\begin{tikzpicture}\tiny
 \foreach \anfang/\ende/\descr [count=\ix starting from 0] in {%
    25/100/{klein polar (hydrophil)},
    104/170/{groß, polar (hydrophil)},
    174/254/{mittiere Polarität},
    258/314/{groß unpolar},
    318/381/{klein, unpolar}}{%
    \pgfmathsetmacro\farbe{\colorlist[\ix]}
    \path[bent text={\descr}] (\anfang:5cm) arc (\anfang:\ende:5cm);
}

\foreach [count=\i, 
    evaluate=\i as \angle using int((\i-1)*360/20), 
    evaluate=\i as \midangle using int((\i-1.5)*360/20), 
    evaluate=\midangle as \lastmid using int((\i-.5)*360/20)
    ] 
    \text/\colr in {%
        1/0,2/0,3/0,4/0,
        \schemestart \chemnameinit{}\chemname{\chemfig{C(=[3]O)(-[1]OH)(-[6]CH_2(-[6]CH(-[5]NH_2)(-[7]C(=[6]O)(-[1] OH))))}}{Asparaginsäure\\Asp\\D} \schemestop/0,
        \schemestart \chemnameinit{} \chemname{\chemfig{CH(-[3]NH_2)(-[1]C(=[2]OH)(-[7]OH))(-[6]CH_2(-[6]C(=[5]O)(-[7]  NH_2)))}}{Asparagin\\Asn\\N}\schemestop/0
        ,7/1,8/1,9/1,10/2,11/2,12/2,13/3,14/3,15/3,16/3,17/4,18/4,19/4,20/4% Beschriftung der Kreise
}{
    \pgfmathsetmacro\farbe{\colorlist[\colr]}
    \aminoacids[\farbe]{\i}{\angle:9}{\text}
}
\end{tikzpicture}
\end{document}

verwandte Informationen