Es gibt eine nette Funktion, die back to back histograms in Matlab zieht. Ich muss ein ähnliches Diagramm in Matplotlib erstellen. Kann jemand ein funktionierendes Codebeispiel zeigen?Back-to-Back-Histogramme in Matplotlib
3
A
Antwort
4
Dank der Verbindung von Mark Rushakoff zeigte, ist nach dem, was ich tat schließlich
import numpy as np
from matplotlib import pylab as pl
dataOne = get_data_one()
dataTwo = get_data_two()
hN = pl.hist(dataTwo, orientation='horizontal', normed=0, rwidth=0.8, label='ONE')
hS = pl.hist(dataOne, bins=hN[1], orientation='horizontal', normed=0,
rwidth=0.8, label='TWO')
for p in hS[2]:
p.set_width(- p.get_width())
xmin = min([ min(w.get_width() for w in hS[2]),
min([w.get_width() for w in hN[2]]) ])
xmin = np.floor(xmin)
xmax = max([ max(w.get_width() for w in hS[2]),
max([w.get_width() for w in hN[2]]) ])
xmax = np.ceil(xmax)
range = xmax - xmin
delta = 0.0 * range
pl.xlim([xmin - delta, xmax + delta])
xt = pl.xticks()
n = xt[0]
s = ['%.1f'%abs(i) for i in n]
pl.xticks(n, s)
pl.legend(loc='best')
pl.axvline(0.0)
pl.show()
2
Diese matplotlib users mailing post hat einige Beispielcode für ein Bihistogramm, die nach oben und unten statt nach links und rechts geht. Here's the example output verknüpfte er mit.
Wenn Up-Down absolut nicht für Sie funktioniert, sollte es nur ein paar Minuten dauern, um die Operationen auf der Y-Achse mit den X-Achsen-Operationen zu vertauschen.
Auch ist Ihr Link keine MATLAB-Funktion, es ist ein echtes Skript, das jemand in etwa 40 Zeilen geschrieben hat. Sie könnten tatsächlich die Skriptquelle betrachten und versuchen, sie zu portieren, da MATLAB und matplotlib eine ziemlich enge Syntax haben.
was haben Sie versucht? – SilentGhost