Hallo zusammen, ich würde gerne ein Diagramm erstellen, das aus zwei Grafiken besteht. Der obere Teil soll bspw. den kompletten Graphen darstellen, während der untere Teil nur einen Ausschnitt des oberen Grafen darstellt. Dies soll mit einer Art Zoom-Funktion gemacht werden. Ich hab das auch soweit hinbekommen, allerdings alles manuell ausgerichtet und das ist wie immer etwas umständlich. Außerdem gelingt es mir nicht, für die obere Abbildung noch einen Titel einzufügen (über subfloat) ohne dass alles wieder verzogen wird. Am folgenden MB kann man - glaube ich - ganz gut nachvollziehen, was ich meine. Vielen Dank schonmal für die Hilfe. Open in writeLaTeX
\documentclass{scrartcl} \usepackage{subfig} \usepackage{pgfplots} \pgfplotsset{compat=1.9} \usepackage{tikz} \usepackage{filecontents} \begin{filecontents}{datensuperfein.dat} x y 0.00 1.0000 0.01 0.9831 0.02 0.9599 0.03 0.9719 0.04 0.9572 0.05 0.9283 0.06 1.0090 0.07 1.0142 0.08 1.0345 0.09 0.9303 0.10 0.9502 0.11 0.9220 0.12 0.8955 0.13 0.9415 0.14 0.9763 0.15 0.9202 0.16 0.9131 0.17 0.9028 0.18 0.9331 0.19 0.9301 0.20 0.9100 0.21 0.9817 0.22 0.9715 0.23 0.9758 0.24 1.0254 0.25 0.9807 0.26 1.0211 0.27 1.0374 0.28 1.0357 0.29 1.0789 0.30 1.1140 0.31 1.1735 0.32 1.1788 0.33 1.2679 0.34 1.2515 0.35 1.1390 0.36 1.0966 0.37 1.1250 0.38 1.1485 0.39 1.1710 0.40 1.1265 0.41 1.0565 0.42 1.1200 0.43 1.1349 0.44 1.1892 0.45 1.1238 0.46 1.1619 0.47 1.2652 0.48 1.2351 0.49 1.2125 0.50 1.1996 0.51 1.1542 0.52 1.1157 0.53 1.0923 0.54 1.1220 0.55 1.1387 0.56 1.1127 0.57 1.1711 0.58 1.2192 0.59 1.2971 0.60 1.3228 0.61 1.4058 0.62 1.3516 0.63 1.3132 0.64 1.3098 0.65 1.2550 0.66 1.2503 0.67 1.2592 0.68 1.1778 0.69 1.1043 0.70 1.0602 0.71 1.1036 0.72 1.1313 0.73 1.0859 0.74 1.1260 0.75 1.0937 0.76 0.9938 0.77 0.9589 0.78 0.9889 0.79 0.9515 0.80 0.9872 0.81 0.9859 0.82 1.0067 0.83 0.9849 0.84 0.9412 0.85 0.9415 0.86 0.9258 0.87 0.9544 0.88 0.9903 0.89 0.9589 0.90 0.9729 0.91 0.9543 0.92 0.8858 0.93 0.9268 0.94 0.9463 0.95 0.9803 0.96 0.9982 0.97 0.9428 0.98 0.9336 0.99 0.9416 1.00 0.9324 1.01 0.9782 1.02 1.0257 1.03 0.9994 1.04 0.9309 1.05 0.9431 1.06 0.9078 1.07 0.8936 1.08 0.9638 1.09 0.9270 1.10 0.9361 1.11 0.8893 1.12 0.8487 1.13 0.8415 1.14 0.8325 1.15 0.7928 1.16 0.8982 1.17 0.9208 1.18 0.9031 1.19 0.9394 1.20 0.9780 1.21 1.0201 1.22 1.0388 1.23 1.0099 1.24 0.9598 1.25 0.9257 1.26 0.9259 1.27 0.9213 1.28 0.9666 1.29 1.0795 1.30 1.1582 1.31 1.1078 1.32 1.0769 1.33 1.0417 1.34 1.0789 1.35 1.1413 1.36 1.1312 1.37 1.1485 1.38 1.2122 1.39 1.1624 1.40 1.2181 1.41 1.2310 1.42 1.2454 1.43 1.2008 1.44 1.2247 1.45 1.2429 1.46 1.1973 1.47 1.1584 1.48 1.1977 1.49 1.1041 1.50 1.0637 1.51 1.0773 1.52 1.0605 1.53 1.1444 1.54 1.1594 1.55 1.1598 1.56 1.1760 1.57 1.1663 1.58 1.0802 1.59 1.0731 1.60 1.1131 1.61 1.1944 1.62 1.1829 1.63 1.1575 1.64 1.1597 1.65 1.1566 1.66 1.2054 1.67 1.1908 1.68 1.2405 1.69 1.2164 1.70 1.1820 1.71 1.2174 1.72 1.1512 1.73 1.1111 1.74 1.0675 1.75 1.0242 1.76 1.0884 1.77 1.0611 1.78 1.0906 1.79 1.1480 1.80 1.0936 1.81 1.0853 1.82 1.1657 1.83 1.1658 1.84 1.2159 1.85 1.0777 1.86 1.1777 1.87 1.2206 1.88 1.1620 1.89 1.1863 1.90 1.2497 1.91 1.2834 1.92 1.3511 1.93 1.3368 1.94 1.2692 1.95 1.2340 1.96 1.2745 1.97 1.3312 1.98 1.4111 1.99 1.4702 2.00 1.4199 \end{filecontents} \begin{document} \begin{figure} \centering \subfloat{ % hier einen Titel einfügen, klappt nicht. \begin{tikzpicture} \begin{axis}[ width=0.45\textwidth, height=0.3\textheight, xlabel=x, ylabel=y, clip=false, ymin=0, ymax=2, xmin=0, xmax=2, yticklabel style={/pgf/number format/.cd,fixed,fixed zerofill,precision=1}, ] \addplot [no markers,]table [x=x,y=y] {datensuperfein.dat}; \draw (axis cs:0.5,0.7)--(axis cs:0,-2); \draw (axis cs:1,0.7)--(axis cs:2,-2); \draw (axis cs:0.5,0.7)--(axis cs:1,0.7)--(axis cs:1,1.5)--(axis cs:0.5,1.5) -- cycle; \end{axis} \end{tikzpicture} }\\[-0.05cm] \subfloat[Zweite Teilabbildung]{ \begin{tikzpicture} \begin{axis}[ width=0.45\textwidth, height=0.3\textheight, xlabel=x, ylabel=y, restrict x to domain=0.5:1.0; xmin=0.5, xmax=1, ymin=0.8, ymax=1.5, yticklabel style={/pgf/number format/.cd,fixed,fixed zerofill,precision=1}, ] \addplot [no markers,]table [x=x,y=y] {datensuperfein.dat}; \end{axis} \end{tikzpicture} } \end{figure} \end{document} gefragt 23 Jun '14, 19:01 josephine |
Für die Teilbeschriftungen würde ich das Paket Code: Open in writeLaTeX
\documentclass{scrartcl} \usepackage{pgfplots} \pgfplotsset{compat=1.9} \usepackage{subcaption} \begin{document} \begin{figure} \centering \begin{tikzpicture}[ ausschnitt/.style={blue!50!red} ] % Befehl für Teilbeschriftungen \newcommand\teilbeschriftung[1]{ \node[below,text width=.45\textwidth] at (current axis.outer south){\subcaption{#1}}; } % Einstellungen für Achsen \pgfplotsset{ myaxis/.style={ width=.45\textwidth, height=0.3\textheight, xlabel=x, ylabel=y, yticklabel style={/pgf/number format/.cd,fixed,fixed zerofill,precision=1}, } } % \begin{axis}[ myaxis, ymin=0, ymax=2, xmin=0, xmax=2, ] \addplot [no markers]table[x=x,y=y]{datensuperfein.dat}; \draw[ausschnitt] (axis cs:0.5,0.7)coordinate(ul)-- (axis cs:1,0.7)coordinate(ur)-- (axis cs:1,1.5)coordinate(or)-- (axis cs:0.5,1.5) -- cycle; \end{axis} \teilbeschriftung{Beschriftung 1} % Ausschnitt \begin{axis}[ xshift=.5\textwidth, myaxis, axis line style=ausschnitt, xmin=0.5, xmax=1, ymin=0.8,ytickmin=.9, ymax=1.5, ] \addplot [no markers]table [x=x,y=y] {datensuperfein.dat}; \end{axis} \teilbeschriftung{Beschriftung 2} % Verbindungslinien \draw[ausschnitt] (current axis.north west)--(or) (current axis.south west)--(ur); \end{tikzpicture} \caption{Beschriftung insgesamt} \end{figure} \end{document} Die beiden Abbildungen untereinander würde dagegen so aussehen: Dafür müsste in obigem Code beim Plot des Ausschnittes beantwortet 24 Jun '14, 12:26 esdd |
Ist das der echte Graph, oder sieht er eigentlich anders aus? Mit einer realen Funktion, wo man auch einen Effekt des Vergrößerns sieht, macht eine Lösung mehr Spaß! Ich arbeite auch gern mit pgfplots. Ich würde es dann mit
pin
machen.@stefan, ich habe den Graphen ein wenig angepasst. Jetzt sieht man den Zoom Effekt auch besser. Wie genau würdest du in dem Fall dann mit pin arbeiten?
@josephine Da Elke schon eine sehr gute Lösung postete, hab ich nicht nochmal überlegt. Mit pin und zoom würde ich es analog hier machen: Weierstrass-Funktion.