Scatter Diagramm (Färbung der einzelnen Felder nach Häufigkeit)
Ich möchte ein Scatter-Diagramm mit Latex realisieren! Eine ähnliche Fragestellung wurde hier schon einmal gepostet ->
`http://texwelt.de/wissen/fragen/17242/scatter-histogramm-mit-gnuplot-moglich`
Leider kann ich diese Lösung nicht 1:1 übernehmen, da sich meine Wunsch-Darstellung des Diagramms ein wenig unterscheidet. Und zwar wie folgt:
Der ganze Bereich des Diagramms ist in Felder unterteilt (Klassen). Ich möchte diese Felder, die in meinem Fall alle gleich groß sind (konstante Klassenbreite) je nachdem wie viel Prozent der Werte einer Klasse angehören (Treffer innerhalb des jeweiligen Feldes) -> dieses Feld mit Farbe einfärben oder wenigstens die darin eingeschlossenen Punkte. Ich habe keine Ahnung welche Möglichkeit leichter zu realisieren ist bzw. wie das überhaupt realisierbar ist.
Ich hoffe ihr seht mein Anliegen nicht als frech an. Da ich explizit eine Frage in den Raum werfe und eine fertige Lösung verlange. Danke.
Solch eine Darstellung wäre Wünschenswert:
Die Färbung der Felder.
![alt text][1]
Anbei der
[1]: http://texwelt.de/wissen/upfiles/texx.png
UPDATE: Hier mein leider nicht funktionstüchtiger Code:
Meine Werte lese ich von einer .dat-Datei ein. Ich konnte den bestehenden Code von `http://texwelt.de/wissen/fragen/17242/scatter-histogramm-mit-gnuplot-moglich`
\generatetable{1000}\loadedtable
\documentclass{article}
nicht richtig ändern/adaptieren. Mein Ergebnis sieht vollkommen anders aus. Warum? Danke.
\begin{filecontents}{1.dat}
spalteB spalteA
1 2
3 2
-4 15
5 12
-30 10
20 1
30 2
5 8
-4 3
6 4
7 12
8 1
45 9
-3 45
2 45
4 23
6 56
-8 23
12 12
56 12
6 4
-7 66
76 2
3 12
-2 7
4 3
6 2
-8 1
-12 1
-56 1
-64 3
-7 77
-76 43
1 34
5 23
7 23
12 2
45 2
\end{filecontents}
\documentclass{scrartcl}
\usepackage{pgfplots}
\usepgfplotslibrary{statistics}
\usepackage{luacode}
\begin{luacode*}
-- Initialize the random number generator according to
-- http://lua-users.org/wiki/MathLibraryTutorial
math.randomseed( tonumber(tostring(os.time()):reverse():sub(1,6)) )
-- State variables of gauss_random
generate = false
z1 = 0.0
z2 = 0.0
-- Parameters of gauss_random
mu = 0.0
sigma = 1.0
-- standard Box-Muller transform
-- https://en.wikipedia.org/wiki/Box-Muller_transform
function gauss_random()
generate = not generate
if (not generate) then
return z1 * sigma + mu;
end
repeat
u1 = math.random()
u2 = math.random()
until ( u1 > 1e-16 )
z0 = math.sqrt(-2.0 * math.log(u1)) * math.cos(2*math.pi * u2)
z1 = math.sqrt(-2.0 * math.log(u1)) * math.sin(2*math.pi * u2)
return z0*sigma + mu
end
function generate_table(N)
tex.sprint("{\r")
tex.sprint("x y\r")
for i = 1, N do
tex.sprint(gauss_random() .. " " .. gauss_random() .. "\r")
end
tex.sprint("}")
end
\end{luacode*}
\newcommand\generatetable[2]{%
\expandafter\pgfplotstableread\directlua{generate_table(#1)}#2
}
\pgfplotsset{compat=newest}
\pgfplotsset{width=15cm,height=15cm}
\begin{document}
\generatetable{1000}\loadedtable
\begin{tikzpicture}
\begin{axis}[
name=main,grid=major,xlabel={$x$},ylabel={$y$},
yticklabel pos=right,ylabel near ticks,
width=8cm,height=8cm,enlargelimits=false,
xmin=-4,xmax=4,ymin=-4,ymax=4
\begin{center}
\begin{minipage}{\linewidth}
\centering
\begin{tikzpicture}
\begin{axis}
[ xmin=-80,
xmax=80,
ymin=-80,
ymax=80,
ylabel={$f(x)=x$},
xlabel={$f(y)=x$},
legend entries={$\sigma$},
title=Test Diagramm Eins
]
\addplot+[only \addplot[
matrix plot,mesh/rows=10,mesh/cols=10,
point meta=explicit,
shader=faceted,colormap/cool
] table[meta=z] {1.dat};
\addplot[only marks,mark=o] table {\loadedtable};
\addlegendentry{data};
table[x=spalteA,y=spalteB] {1.dat};
\end{axis}
\begin{axis}[
at=(main.below south),anchor=north,rotate=180,
width=8cm,height=4cm,enlargelimits=false,
axis lines=none,ybar
]
\addplot+[hist={bins=30,data min=-4,data max=4}]
table [y index=0] {\loadedtable};
\end{axis}
\begin{axis}[
at=(main.right of east),anchor=west,rotate=-90,
width=8cm,height=4cm,enlargelimits=false,
axis lines=none,ybar
]
\addplot+[hist={bins=30,data min=-4,data max=4}]
table [y index=1] {\loadedtable};
\end{axis}
\end{tikzpicture}
\end{minipage}
\end{center}
\end{document}
[1]: http://texwelt.de/wissen/upfiles/texx.png