Vor einiger Zeit wurde eine Bibliothek namens Plotly Express (offizielle Website) veröffentlicht, die eine einfache interaktive Bedienung auf der Basis von Javascript ermöglicht. Ich fand. Ich fühlte das Potenzial einer Dimension, die sich deutlich von der bisherigen statischen Zeichnung unterscheidet, und fasste zusammen, wie man eine grundlegende Visualisierungsmethode als Memorandum zeichnet. Als Referenz vergleiche ich es mit dem Muster, dass ich eine ähnliche Figur mit matplotlib + seaborn geschrieben habe.
Die "grundlegende Visualisierungsmethode" basiert auf der zuvor geschriebenen "Auswählen und Zeichnen der richtigen Visualisierungsmethode in der explorativen Datenanalyse".
Plotly Express ist eine Gruppe von High-Level-APIs, die im März 2019 veröffentlicht wurden. Die Funktion ist, dass Sie einfach interaktive und komplizierte Zeichnungen schreiben können.
Offizielle Website: https://plot.ly/python/plotly-express/ API reference: https://www.plotly.express/plotly_express/#plotly_express.line Github (Teil von plotly): https://github.com/plotly/plotly.py
Seaborn ist ein Wrapper zum einfachen Schreiben von Matplotlib, aber vergleichen wir Plotly Express und Seaborn, um herauszufinden, was besser ist. Grob
Es ist eine kontrastierende Struktur. (Referenz) Zusammenfassung der von Anaconda organisierten Zeichnungsbibliotheken im Jahr 2018
plotly ist ein Open Source- und interaktives Datenvisualisierungstool. Neben Python kann es mit R und Javascript verwendet werden. Die Version von plotly.py wurde ab dem 11. Januar 2019 auf 4 erhöht. MIT-Lizenz. Github: https://github.com/plotly/plotly.py
Bis zu plotly3 scheint das erstellte Diagramm einen kommerzielleren Geruch zu haben, z. B. "online" verarbeitet oder veröffentlicht zu werden, wenn Sie nicht vorsichtig waren. "Offline-Modus" ist jetzt die Standardeinstellung in plotly4, wodurch die Möglichkeiten innerhalb des freien Frames erweitert und die Verwendung vereinfacht werden. Ankündigung von plotly 4.0.0: https://community.plot.ly/t/introducing-plotly-py-4-0-0/25639
** Frei ** plotly: Ein Visualisierungsmodul, das interaktiv mit Javascript betrieben werden kann
** Bezahlt (teilweise) ** Chart Studio: Ein Dienst, der durch Trennen des Online-Modus von plotly erstellt wurde? Visualisierungssystem DASH: Sie können Dashboard-Apps mit Python oder R erstellen, ohne Kenntnisse in Javascript zu benötigen.
Angenommen, Mac, Jupyter Lab ist enthalten Einige Einstellungen sind erforderlich, um jupyter lab zu unterstützen
pip install plotly
# Avoid "JavaScript heap out of memory" errors during extension installation
# (OS X/Linux)
export NODE_OPTIONS=--max-old-space-size=4096
# Jupyter widgets extension
jupyter labextension install @jupyter-widgets/[email protected] --no-build
# FigureWidget support
jupyter labextension install [email protected] --no-build
# and jupyterlab renderer support
jupyter labextension install [email protected] --no-build
# JupyterLab chart editor support (optional)
jupyter labextension install [email protected] --no-build
# Build extensions (must be done to activate extensions since --no-build is used above)
jupyter lab build
# Unset NODE_OPTIONS environment variable
# (OS X/Linux)
unset NODE_OPTIONS
Weitere Informationen finden Sie auf der Installationsseite der offiziellen Website.
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sns
import plotly.express as px
from plotly.subplots import make_subplots
import plotly.figure_factory as ff
import plotly.graph_objects as go
import plotly.io as pio
import japanize_matplotlib
import datetime
from matplotlib.dates import MonthLocator
from IPython.display import HTML
sns.set_style('darkgrid')
pio.templates.default = 'seaborn'
plt.rcParams['font.family'] = 'IPAexGothic'
%matplotlib inline
%config InlineBackend.figure_formats = {'png', 'retina'}
import matplotlib
import plotly
print(matplotlib.__version__) # 3.1.1
print(sns.__version__) # 0.9.0
print(plotly.__version__) # 4.2.1
#Verwenden Sie den Iris-Datensatz
iris = sns.load_dataset('iris')
iris.head()
sepal_length | sepal_width | petal_length | petal_width | species | |
---|---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
matplotlib+seaborn
fig, axes = plt.subplots(ncols=2, figsize=(16, 4))
sns.distplot(iris['sepal_length'], bins=np.arange(4,8,0.25), kde=False, label='all', ax=axes[0])
sns.distplot(iris.query('species=="setosa"')['sepal_length'], kde=False,
bins=np.arange(4,8,0.25), label='setosa', hist_kws={'alpha':0.3}, ax=axes[1])
sns.distplot(iris.query('species=="versicolor"')['sepal_length'], kde=False,
bins=np.arange(4,8,0.25), label='versicolor', hist_kws={'alpha':0.3}, ax=axes[1])
sns.distplot(iris.query('species=="virginica"')['sepal_length'], kde=False,
bins=np.arange(4,8,0.25), label='virginica', hist_kws={'alpha':0.3}, ax=axes[1])
axes[0].set_title("Messlängenhistogramm(cm)")
axes[1].set_title("Ein Histogramm der Länge des Schwertes für jede Sorte(cm)")
axes[1].legend()
plt.show()
Plotly Express
#Sie können die Breite des Bin nicht explizit angeben, aber wenn Sie die Größe der nbins ändern, erhalten Sie eine schöne Breite.
#Plotly Express erzeugt Abb
#Wenn Sie die Figur in Unterplots speichern möchten, wird jede Figur.Sie können Trace von Daten abrufen und speichern
#Wenn jedoch marginal angegeben ist, wird die Position von marginal zusammenbrechen. Lassen Sie sie daher eine Weile stehen.
fig = px.histogram(iris, x='sepal_length', color='species',
nbins=19, range_x=[4,8], width=600, height=350,
opacity=0.4, marginal='box')
#Bereich beim Zeichnen des Histogramms_Wenn y angegeben ist, wird die Zeichenposition des Randfelddiagramms beschädigt.
fig.update_layout(barmode='overlay')
fig.update_yaxes(range=[0,20],row=1, col=1)
#Als HTML speichern
# fig.write_html('histogram_with_boxplot.html', auto_open=False)
fig.show()
Klicken Sie hier für einen funktionierenden Link: https://uchidehiroki.github.io/plotly_folders/Basic_Charts/histogram_with_boxplot_px.html
Wenn Sie mit der Maus darüber fahren, werden verschiedene Informationen angezeigt. Randdiagramm ist einfach anzuwenden. Sie können nur die Sorte sehen, die Sie sehen möchten, indem Sie auf den Artikel rechts doppelklicken.
plotly Ich werde mit der Funktion des Handlungskörpers zeichnen
fig = make_subplots(rows=1, cols=2, subplot_titles=('Die Länge des Stückes(cm)', '品種毎のDie Länge des Stückes(cm)'))
fig.add_trace(go.Histogram(x=iris['sepal_length'], xbins=dict(start=4,end=8,size=0.25), hovertemplate="%{x}cm: %{y}Stücke", name="Alle Sorten"), row=1, col=1)
for species in ['setosa', 'versicolor', 'virginica']:
fig.add_trace(go.Histogram(x=iris.query(f'species=="{species}"')['sepal_length'],
xbins=dict(start=4,end=8,size=0.25), hovertemplate="%{x}cm: %{y}Stücke", name=species), row=1, col=2)
fig.update_layout(barmode='overlay', height=400, width=900)
fig.update_traces(opacity=0.3, row=1, col=2)
fig.update_xaxes(tickvals=np.arange(4,8,0.5), title_text='sepal_length')
fig.update_yaxes(title_text='Frequenz')
fig.write_html('../output/histogram_with_boxplot_plotly.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/histogram_with_boxplot_plotly.html
matplotlib+seaborn
fig, ax = plt.subplots(figsize=(8,3))
sns.boxplot(x='sepal_length', y='species', data=iris, order=('setosa', 'versicolor', 'virginica'), ax=ax)
ax.set_title('Box Whisker mit der Länge der Stücke für jede Sorte(cm)')
plt.show()
Plotly Express
fig = px.box(iris, y='species', x='sepal_length', color='species', orientation='h',
category_orders={'species': ['setosa', 'versicolor', 'virginica']},
title='Box Whisker mit der Länge der Stücke für jede Sorte(cm)', width=600, height=400)
fig.update_layout(showlegend=False)
fig.write_html('../output/boxplot_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/boxplot_px.html Wenn Sie beispielsweise den Cursor auf einen Punkt mit einem Ausreißer setzen, werden Informationen angezeigt. Es ist nicht schön, dass nicht jede Sorte auf die horizontale Linie kommt ...
plotly
fig = go.Figure()
for species in iris['species'].unique():
fig.add_trace(go.Box(x=iris.query(f'species=="{species}"')['sepal_length'], name=species))
fig.update_layout(height=300, width=600, showlegend=False, title_text='Box Whisker mit der Länge der Stücke für jede Sorte(cm)')
fig.update_xaxes(title_text='sepal_length')
fig.write_html('../output/boxplot_plotly.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/boxplot_plotly.html Dies ist eine Box Bart Figur auf der Linie richtig
matplotlib + seaborn
fig, ax = plt.subplots(figsize=(8,3))
sns.barplot(x='sepal_length', y='species', order=['setosa', 'versicolor', 'virginica'], ci='sd', data=iris, ax=ax)
ax.set_title('Durchschnittliche Länge der Abfälle für jede Sorte(cm)')
plt.show()
Plotly Express
#Im Gegensatz zu Seaborn berechnet Plotly keine Durchschnittslängen oder Standardabweichungen.
agg_iris = iris.groupby(['species'])[['sepal_length']].agg([np.mean, np.std, 'count']).reset_index()
agg_iris.columns = ['species', 'sepal_length', 'std', 'count']
fig = px.bar(agg_iris, x='sepal_length', y='species', color='species', category_orders={'species': ['setosa', 'versicolor', 'virginica']},
error_x='std', orientation='h', hover_data=['count'], height=300, width=600, title='Durchschnittliche Länge der Abfälle für jede Sorte(cm)')
fig.update_layout(showlegend=False)
fig.write_html('../output/barplot_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/barplot_px.html
Nützlich, wenn mehrere Vergleichsachsen vorhanden sind
tips = px.data.tips()
fig = px.histogram(tips, x="sex", y="tip", histfunc="avg", color="smoker", barmode="group",
facet_row="time", facet_col="day", category_orders={"day": ["Thur", "Fri", "Sat", "Sun"],
"time": ["Lunch", "Dinner"]},
height=400, width=800)
fig.write_html('../output/boxplot_with_facet_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/boxplot_with_facet_px.html
Vorverarbeitung
iris['sepal_length_rank'] = pd.cut(iris['sepal_length'], [4,5,7,8], labels=['short', 'medium', 'long'])
agg_iris = iris.groupby(['sepal_length_rank','species']).size().reset_index()
agg_iris.columns = ['sepal_length_rank', 'species', 'count']
pivot_iris = agg_iris.pivot(index='sepal_length_rank', columns='species', values='count')
matplotlib+~~seaborn~~Pandas Plot
#zu Seegeborenen gestapelt=Da es keine Funktion gibt, die True entspricht, schreiben Sie sie mit Pandas Plot
fig, ax = plt.subplots(figsize=(8,3))
pivot_iris.plot.barh(y=pivot_iris.columns, stacked=True, ax=ax)
ax.set_title('Aufschlüsselung nach Häufigkeit und Sorte für jeden Rang der Länge des Stücks')
ax.set_xlabel('Frequenz')
ax.set_ylabel('Rang der Länge des Stückes')
plt.show()
Plotly Express
fig = px.bar(agg_iris, y='sepal_length_rank', x='count', color='species', orientation='h', barmode='relative',
height=300, width=600, title='Aufschlüsselung nach Häufigkeit und Sorte für jeden Rang der Länge des Stücks')
fig.update_xaxes(title_text='Frequenz')
fig.update_yaxes(title_text='Rang der Länge des Stückes')
fig.write_html('../output/stacked_barplot_px.html', auto_open=False)
fig
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/stacked_barplot_px.html Sie können jedes Element auswählen und stapeln
matplotlib + seaborn
#Wenn Sie die Korrelation zwischen zwei Variablen sehen möchten
fig, ax = plt.subplots(figsize=(6,4))
sns.scatterplot(x='sepal_length', y='petal_length', hue='species', data=iris, ax=ax)
ax.legend(loc='lower right')
ax.set_title('Streudiagramm der Länge der Trümmer und der Länge der Blütenblätter(cm)')
ax.set_xlabel('Die Länge des Stückes(cm)')
ax.set_ylabel('Blütenblattlänge(cm)')
plt.show()
#Wenn Sie die Korrelation mehrerer Variablen sehen möchten
g = sns.pairplot(iris, hue='species')
plt.subplots_adjust(top=0.95)
g.fig.suptitle('Streudiagrammmatrix für jede Sorte')
g.fig.set_size_inches(8,6)
Plotly Express
fig = px.scatter(px.data.iris(), x='sepal_length', y='petal_length', color='species', symbol='species',
marginal_x='box', marginal_y='histogram', trendline='ols',
hover_data=['species_id'], width=800, height=600, title='Streudiagramm der Länge der Trümmer und der Länge der Blütenblätter(cm)')
#Wenn der Bereich nicht einzeln angegeben wird, nicht in Streuung, wird er in der Randfigur wiedergegeben und die Randfigur ist nicht sichtbar.
fig.update_xaxes(title_text='Die Länge des Stückes(cm)', range=[4,8], row=1, col=1)
fig.update_yaxes(title_text='Blütenblattlänge(cm)', range=[0.5,8], row=1, col=1)
fig.write_html('../output/scatterplot_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/scatterplot_px.html
fig = px.scatter_matrix(iris, dimensions=['sepal_length','sepal_width','petal_length','petal_width'],
color='species', size_max=1, title='Streudiagrammmatrix für jede Sorte', width=800,height=600)
fig.write_html('../output/scattermatrix_px.html', auto_open=False)
fig
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/scattermatrix_px.html Wenn Sie das Wurfseilwerkzeug oben rechts verwenden, um einige Daten einzuschließen, werden in allen Abbildungen nur die Daten hervorgehoben, die diesen Daten entsprechen. Wenn Sie "Spike Lines umschalten" aktivieren, erhalten Sie Hilfslinien für x- und y-Koordinaten.
Wenn zu viele Variablen vorhanden sind, ist es besser, parallele Koordinaten zu verwenden, als die Streudiagrammmatrix zu betrachten
#Die Achsenumlagerung kann interaktiv betrieben werden, dies ist gefährlich
#Das Filtern ist auch für jede Achse möglich, und die angezeigte Breite kann durch Klicken auf den Wert der Achse angepasst werden.
#Anstatt jede Korrelation mit einer Streudiagrammmatrix zu betrachten, scheint es besser, diese Gleichgewichtskoordinate zu betrachten, da mehrere Achsen berücksichtigt werden können.
fig = px.parallel_coordinates(px.data.iris(),
color='species_id',
dimensions=['sepal_length','sepal_width','petal_length','petal_width', 'species_id'],
color_continuous_scale=px.colors.diverging.Portland,
height=400, width=800)
fig.write_html('../output/parallel_coordinates_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/parallel_coordinates_px.html Sie können die Achsen neu anordnen Wenn Sie einen Wert in der Achse auswählen, wird dieser nur nach den Daten gefiltert, die diesen Wert durchlaufen.
#Wenn sich die kategoriale Variable auf der Achse befindet, können Sie dies folgendermaßen tun
fig = px.parallel_categories(iris, dimensions=['species', 'sepal_length_rank'], color='sepal_length',
labels={'species': 'Ayame Sorte', 'sepal_length_rank': 'Trümmerlängengrad'},
height=400, width=600)
fig.write_html('../output/parallel_categories_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/parallel_categories_px.html
Vorverarbeitung
flights = sns.load_dataset("flights")
#Kreuztabelle
crossed_flights = pd.pivot_table(flights, values="passengers", index="month", columns="year", aggfunc=np.mean)
# pd.crosstab(flights["month"], flights["year"], values=flights["passengers"], aggfunc=np.mean)Aber ja
matplotlib+seaborn
#Wärmekarte
fig, ax = plt.subplots(figsize=(8,6))
sns.heatmap(crossed_flights,annot=True, cmap="Oranges", fmt='.5g', ax=ax)
ax.set_title('Heatmap der Passagierzahlen');
Irgendwie gehen die Zahlen aus dem Rahmen ... Es ist in der Vergangenheit nicht passiert, aber es ist ein Rätsel.
Plotly Express Da es in Plotly Express keine entsprechende Funktion gab, werden wir die Funktion von plotly selbst verwenden plotly
fig = go.Figure()
fig.add_trace(go.Heatmap(z=crossed_flights, x=crossed_flights.columns, y=crossed_flights.index,
hovertemplate='%{x}-%{y}: %{z} passengers', colorscale='Oranges'))
fig.update_layout(height=400, width=600, title_text='Heatmap der Passagierzahlen(Mit Schwebeflug und ohne Anmerkungen)')
fig.write_html('../output/heatmap_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/heatmap_px.html
#Die Heatmap ist leichter zu erkennen, wenn der Hover ausgeschaltet ist.
fig = ff.create_annotated_heatmap(z=crossed_flights.values, x=list(crossed_flights.columns),
y=list(crossed_flights.index), colorscale='Oranges',
hoverinfo='none')
fig.update_layout(height=400, width=600, showlegend=False, title_text='Heatmap der Passagierzahlen(Ohne Hover Mit Annotieren)')
fig.write_html('../output/heatmap_with_annotate_px.html', auto_open=False)
fig
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/heatmap_with_annotate_px.html
Vorverarbeitung
#Bereiten Sie eine Spalte vom Typ datetime vor
datetimes = []
for i, j in enumerate(flights.itertuples()):
datetimes.append(datetime.datetime.strptime(f'{j[1]}-{j[2]}', '%Y-%B'))
flights['datetime'] = datetimes
matplotlib+seaborn
fig, ax = plt.subplots(figsize=(12, 4))
sns.lineplot(x='datetime', y='passengers', data=flights, ax=ax)
ax.xaxis.set_major_locator(MonthLocator(interval=6))
ax.tick_params(labelrotation=45)
ax.set_xlim(datetime.datetime(1949,1,1,0,0,0),datetime.datetime(1961,1,1,0,0,0))
ax.set_title('Break-Line-Diagramm der Änderungen in der Anzahl der Passagiere(Monatlich)')
plt.show()
Plotly Express
fig = px.line(flights, x='datetime', y='passengers',
height=400, width=800, title='Break-Line-Diagramm der Änderungen in der Anzahl der Passagiere(Monatlich)')
fig.update_layout(xaxis_range=['1949-01-01', '1961-01-01'], # datetime.Kann durch Datum / Uhrzeit angegeben werden
xaxis_rangeslider_visible=True)
fig.update_xaxes(tickformat='%Y-%m', tickangle=45)
fig.write_html('../output/lineplot_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/lineplot_px.html Sie können das Liniendiagramm in dem durch den Schieberegler unten angegebenen Bereich überprüfen. Beim Vergleichen mehrerer Liniendiagramme können Sie nur die Elemente auswählen, die Sie später vergleichen möchten.
Ich habe mir https://plot.ly/python/plotly-express/ angesehen und einige interessante Zahlen zusammengestellt.
Polar Coordinates Das Balkendiagramm konnte nur die Länge eines Univariaten vergleichen, aber es scheint, dass es verwendet werden kann, wenn Sie Ergebnisse auf mehreren Achsen vergleichen möchten, z. B. Testergebnisse.
melted_iris = iris.melt(id_vars=['species'], value_vars=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'],
var_name='variable', value_name='value')
melted_iris = melted_iris.groupby(['species', 'variable']).mean().reset_index()
fig = px.line_polar(melted_iris, r='value', theta='variable', color='species', line_close=True,
height=500, width=500, title='Länge und Breite der Splitter und Blütenblätter für jede Ayame-Sorte')
fig.write_html('../output/line_polar_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/line_polar_px.html Besonders die Form der Setosa-Blume scheint anders zu sein
fig = make_subplots(rows=1, cols=2, subplot_titles=('Die Länge des Stückes(cm)', '品種毎のDie Länge des Stückes(cm)'))
fig.add_trace(px.density_contour(iris, x="sepal_width", y="sepal_length").data[0],row=1, col=1)
fig2 = px.density_contour(iris, x="sepal_width", y="sepal_length", color='species')
[fig.add_trace(fig2.data[i], row=1, col=2) for i in range(len(fig2.data))] #Bewahren Sie alle Spuren von Abb. 2 in Abb
fig.write_html('../output/densityplot_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/densityplot_px.html Cool Sie können mit der Maus sehen, wie hoch jede Konturlinie ist
gapminder = px.data.gapminder()
fig = px.scatter(gapminder, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
size="pop", color="continent", hover_name="country", facet_col="continent",
log_x=True, size_max=45, range_x=[100,100000], range_y=[25,90])
fig.write_html('../output/scatter_animation_px.html', auto_open=False)
fig.show()
https://uchidehiroki.github.io/plotly_folders/Basic_Charts/scatter_animation_px.html Ich finde das interessant, wenn Sie auf die URL klicken und sie tatsächlich verschieben
Ich werde die Ergebnisse des Vergleichs von Plotly Express und Seaborn (Matplotlib) mit willkürlichem Urteilsvermögen und Vorurteilen zusammenfassen ◎: Zur Verwendung empfohlen ○: Kein besonderes Problem △: Unzufrieden ×: Keine Implementierung
Graph | Plotly Express | matplotlib seaborn |
Grund |
---|---|---|---|
Histogramm | ◎ | ○ | Seaborn ist genug, aber es ist ein Vorteil, dass Sie nur die Verteilung der Sorten auswählen und sehen können, die Sie sehen möchten Es ist auch ein Punkt, dass Sie nicht für jeden Produkttyp den gleichen Code wiederholen müssen |
Box Whisker | ○ | ○ | Es gibt nicht genügend Informationen, um eine bestimmte Sorte auszuwählen und durch Bewegen des Mauszeigers hinzuzufügen Mit Plotly Express kollabiert die Figur ein wenig Wenn Sie interessiert sind, können Sie vorerst das Plotly-Hauptgerät verwenden. |
Balkendiagramm | ○(※◎) | ◎ | Seaborn berechnet den Mittelwert und die Standardabweichung, Plotly Express muss jedoch im Voraus berechnet werden. (※2つ以上の軸でBalkendiagrammを作りたい場合はfacetが使えるPlotly Express一択) |
Gestapeltes Balkendiagramm | ◎ | × | Plotly Express kann die Elemente ändern, die später gestapelt werden sollen seabornはGestapeltes Balkendiagrammの機能がない |
Streudiagramm | ◎ | ○ | Sie können für jede Gruppe eine Regressionslinie festlegen Sie können Metainformationen wie die Neigung der Regressionslinie mit dem Hover überprüfen. Einfach zu integrierende Randhandlung Streudiagrammの特定の箇所を拡大縮小出来る Sie können Metainformationen wie Identifikationsnummern einzelner Daten bewegen Streudiagramm行列においてある図の特定のデータを指定すると他の図全てで同じデータのみを強調してくれる Wenn Daten gruppiert werden, kann eine bestimmte Gruppe ausgewählt und gezeichnet werden. |
Parallele Koordinaten | ◎ | ? | Unterstützt kategoriale Variablen, mit denen Sie Achsen neu anordnen und nach bestimmten Achsen filtern können Parallele Koordinatenは描画後に色々試行錯誤することで真の威力を発揮する |
Wärmekarte | ○ | △ | Wenn Sie keine zusätzlichen Informationen schweben müssen, reicht Seaborn aus Es sollte sein, aber die Figur des Seegeborenen brach zusammen, weil die Umwelt schlecht ist |
Liniendiagramm | ◎ | ○ | Sie können die Position der Koordinaten auch an Punkten, die weit von der x- und der y-Achse entfernt sind, intuitiv mit dem Umschalter ermitteln. Mit dem Schieberegler können Sie einen beliebigen Bereich zeichnen Wenn es mehrere Faltlinien gibt(Zum Beispiel Bevölkerungsentwicklung in 47 Präfekturen usw.), Sie können die Präfektur auswählen und zeichnen, die Sie vergleichen möchten |
Der überwältigende Sieg von Plotly Express Es gab viele andere Zeichnungen wie Radarkarten, Dichteverteilungen und Animationen, die bei guter Verwendung interessant wären. Außerdem, wenn Sie Slider beherrschen, wird es sehr cool sein. https://plot.ly/python/sliders/ https://uchidehiroki.github.io/plotly_folders/Basic_Charts/histogram_with_slider.html
Von kazutan.R
Es ist problematischer als die Bilddatei, aber es scheint einfacher zu sein, darauf zu verweisen, nachdem die HTML-Datei lokal platziert oder online gehostet wurde. Es ist besser, online zu hosten, insbesondere wenn Sie mit mehreren Personen teilen
Im Vergleich zu PNG- und JPEG-Bilddateien ist es ein kleiner Trick, die HTML-Datei anzuzeigen. ** Bei Offline-Anzeige ** Sie können zeichnen, indem Sie den Pfad der HTML-Datei angeben
** Bei Online-Anzeige ** Plotstil: Verwenden Sie chart_studio Sie können zeichnen, indem Sie die HTML-Datei auf dem Server von plotly hosten und auf die veröffentlichte URL verweisen Wenn Sie jedoch über ein kostenloses Konto verfügen, können Sie keinen geheimen Link erstellen oder in einer privaten Umgebung hosten (sondern verdienen dort viel Geld). Der öffentliche Host der HTML-Datei unterstützt auch insgesamt nur bis zu 100.
Verwenden Sie also Github-Seiten.
Platzieren Sie die HTML-Datei im Github-Repository, wählen Sie "Hauptzweig" unter "Einstellungen" → "GitHub-Seiten" → "Quelle" und klicken Sie auf "Speichern".
あとは、username.github.io/path/to/html/files
にアクセスすればOKです
Es ist einfach, HTML-Dateien zu verwalten, weil es Github ist.
Offizielle Website: https://pages.github.com/
Referenz: https://www.tam-tam.co.jp/tipsnote/html_css/post11245.html
Es scheint, dass Github-Seiten selbst sogar in einem privaten Repository veröffentlicht werden können. Wenn Sie mit Daten analysieren, die Sie nicht öffentlich veröffentlichen möchten, empfiehlt es sich, die HTML-Zeichnungsdatei in einem privaten Repository zu speichern und nur die URL freizugeben.
#Sie können auf die HTML-Datei verweisen und sie einbetten
HTML(filename='../output/histogram_with_boxplot_px.html')
#Sie können auch auf das statische HTML verweisen, das Sie online gestellt haben
HTML(url='https://uchidehiroki.github.io/plotly_folders/Basic_Charts/barplot_px.html')
Früher war ich ein Entertainer auf See, aber jetzt muss ich es nicht mehr viel benutzen. Ich bin ein bisschen einsam, aber ich werde mit der Zeit gehen. Ich hoffe, dass die Anzahl der Plotly Express-Benutzer zunimmt. Es ist lange her, aber danke für Ihre Beziehung.
Recommended Posts