Nach Letztes Mal werde ich dieses Mal das grundlegende Diagramm vorstellen.
Diagramme werden grundsätzlich mit Klassen gezeichnet, die zum Modul "holoviews.element" gehören.
http://holoviews.org/Reference_Manual/holoviews.element.html
Sie können die Liste auch unter "holoviews.elements_list" überprüfen.
import holoviews as hv
print(hv.elements_list)
['Tabular', 'Curve', 'Annotation', 'Histogram', 'GridImage', 'Bounds', 'VectorField', 'Trisurface', 'HSV', 'Dataset', 'Area', 'Spikes', 'BoxWhisker', 'Spread', 'VLine', 'Spline', 'Chart', 'Surface', 'Element3D', 'Arrow', 'Polygons', 'Points', 'ErrorBars', 'QuadMesh', 'HeatMap', 'Ellipse', 'Box', 'Raster', 'Table', 'Text', 'Image', 'HLine', 'ItemTable', 'Element2D', 'Contours', 'Bars', 'Scatter', 'Element', 'Scatter3D', 'Path', 'BaseShape', 'RGB']
Dieses Mal werde ich das grundlegende Diagramm "holoviews.element.chart" vorstellen.
Importieren Sie die erforderlichen Module und bereiten Sie Beispieldaten vor. (Bitte verzeihen Sie mir, dass ich zu diesem Zeitpunkt kein Einzeiler bin.)
import holoviews as hv
import numpy as np
hv.extension('bokeh')
np.random.seed(111)
x = np.linspace(-np.pi, np.pi, 100)
Das Backend ist mit Bokeh eingestellt, funktioniert aber auch mit matplotlib. Einige Grafiken werden nicht von Plot gezeichnet.
hv.Curve((x, np.sin(x)))
hv.Area((x, np.sin(x)))
hv.Points(np.random.randn(100, 2))
Oder
hv.Scatter(np.random.randn(100, 2))
Der Unterschied zwischen "Punkten" und "Streuung" wird bestätigt.
hv.Bars((list('abc'), range(1, 4)))
Da es nicht automatisch berechnet wird, werden die Frequenz und die Kante des Behälters aus numpy berechnet.
hv.Histogram(np.histogram(np.random.randn(1000)))
Sie können ein Histogramm hinzufügen, indem Sie die Hist-Methode aus einem Diagramm wie einem Streudiagramm aufrufen. Es ist wirklich einfach.
hv.Points(np.random.randn(100, 2)).hist()
hv.BoxWhisker(np.random.randn(1000))
Da es an sich nicht geschmackvoll ist, wird ein Faltliniendiagramm hinzugefügt.
hv.ErrorBars([(i, np.sin(i), np.random.rand() / 10)
for i in x]) * hv.Curve((x, np.sin(x)))
Es ist ein Diagramm, das den Originaldaten Breite verleiht. (Ich habe das Gefühl, dass ich es nicht gut erklärt habe, also begrüße ich Tsukkomi) Es sieht gut aus, eine Bollinger-Band zu machen.
hv.Spread((x, np.sin(x), np.random.rand(100)))
hv.Spikes(np.random.randn(100))
Sie können Streudiagramme auch wie unten gezeigt kombinieren.
p = hv.Points((np.random.randn(100, 2)))
p << hv.Spikes(p['y']) << hv.Spikes(p['x'])
hv.VectorField((range(10), range(10), np.random.rand(10), np.random.rand(10)))
TBD Wir werden es aktualisieren, sobald zusätzliche Informationen vorliegen.
Wenn Sie Inhalte haben, denen wir Priorität einräumen sollen, kommentieren Sie diese bitte.
Recommended Posts