In Matlab gibt es die Funktion "scatterhist". Das ist letztlich ein Scatterplot mit Histogrammen/Boxplots für die betreffende Datenreihe an den Achsen. Ist es möglich ein solches Plot mit gnuplot zu erstellen? Quelle: Stackoverflow gefragt 09 Mai '16, 23:39 wiewowas |
Man kann solche einen Graphen mit Open in Online-Editor
\generatetable{1000}\loadedtable durch Open in Online-Editor
\pgfplotstableread{<Dateiname>}\loadedtable dann wird auch kein LuaTeX mehr benötigt. Open in Online-Editor
\documentclass{article} \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)) ) -- standard Box-Muller transform -- https://en.wikipedia.org/wiki/Box-Muller_transform function gauss_random(mu, sigma) -- State variables local generate = false local z0 = 0.0 local z1 = 0.0 -- Parameters local mu = mu or 0.0 local sigma = sigma or 1.0 local function random() generate = not generate if (not generate) then return z1 * sigma + mu; end local u1, u2 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 return random end function generate_table(N) local gauss = gauss_random() tex.sprint("{\r") tex.sprint("x y\r") for i = 1, N do tex.sprint(gauss() .. " " .. gauss() .. "\r") end tex.sprint("}") end \end{luacode*} \newcommand\generatetable[2]{% \expandafter\pgfplotstableread\directlua{generate_table(#1)}#2 } \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 ] \addplot+[only marks,mark=o] table {\loadedtable}; \addlegendentry{data}; \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{document} beantwortet 10 Mai '16, 15:48 Henri |
Müsste möglich sein. Vielleicht kann man sich hieran orientieren: http://gnuplot.sourceforge.net/demo_5.0/margins.html Stichwort aligned plots.
Ich würde aber vermutlich eher auf python/matplotlib zurückgreifen und in tikz exportieren, vgl. http://matplotlib.org/examples/pylab_examples/scatter_hist.html
Mit pgfplot kann man vermutlich auch ein solches Diagramm erstellen.
Für
gnuplot
bist du hier leider falsch. Ich habe mal eine Antwort mitpgfplots
in LaTeX gemacht. Prinzipiell solltest du immer ein Minimalbeispiel zu einer spezifischen Frage (genauer als »Ich will ein Bild das so aussieht«) zeigen. Es gibt selten jemanden, der sich erbarmt deine Faulheit auszugleichen.»Ich will ein Bild das so aussieht« lese ich nur in deinem Post. Wozu du mich dann direkt als "faul" beschimpfen musst erschließt sich mir nicht. Danke trotzdem für dein "Erbarmen" =)
Weil so eine Frage schon sehr im Stil von: »Macht mal die ganze Arbeit für mich.« ist. Das kommt selten gut an, selbst wenn es gar nicht so gemeint war. In anderen Foren werden solche Fragen häufig einfach geschlossen. Das gilt umso mehr, wenn die Frage keinen erkennbaren Bezug zum Forenthema hat, also auch noch als off-topic einzustufen wäre.