【密度の可視化】plotlyで動的な可視化をする【python3,hist,kde,join,contour,heat map】
python==3.8
plotly==4.10.0
ヒストグラム
積み上げるか、透かすかはbarmodeで操作する
透かし
import plotly.graph_objects as go
df = px.data.tips()
fig = px.histogram(df, x="total_bill", y="tip", color="sex", marginal="rug", hover_data=df.columns)
fig.update_layout(barmode='overlay')
fig.update_traces(opacity=0.75)
fig.show()
積み上げ
import plotly.graph_objects as go
df = px.data.tips()
fig = px.histogram(df, x="total_bill", y="tip", color="sex", marginal="violin", hover_data=df.columns)
fig.update_layout(barmode='stack')
fig.update_traces(opacity=0.75)
fig.show()
累積ヒストグラム(cumsum)
import plotly.graph_objects as go
df = px.data.tips()
fig = go.Figure(data=[go.Histogram(x=df.tip.values, cumulative_enabled=True)])
fig.show()
import plotly.graph_objects as go
df = px.data.tips()
fig = go.Figure(data=[go.Histogram(x=df.tip.values, cumulative_enabled=True)])
fig.show()
カーネル密度推定(kde)とhist
kdeをplotするにはfigure_factoryのdistplotをつかう
すこしめんどくさい
データはarrayをdict型で渡す必要がある
import plotly.figure_factory as ff
df = px.data.tips()
group_labels=["total"]
fig = ff.create_distplot([df["total_bill"].values], group_labels)
fig.show()
histとkdeで色分け
arrayの入れ子状で渡すことで自然に色分けしてくれる
import plotly.figure_factory as ff
df = px.data.tips()
hist_data = [df.query("day=='Sun'").tip.values,
df.query("day=='Sat'").tip.values,
df.query("day=='Thur'").tip.values]
group_labels = ['Sun', 'Sat', 'Thur']
fig = ff.create_distplot(hist_data, group_labels, bin_size=.2)
fig.show()
histを消してkdeだけを残す
import plotly.figure_factory as ff
df = px.data.tips()
hist_data = [df.query("day=='Sun'").tip.values,
df.query("day=='Sat'").tip.values,
df.query("day=='Thur'").tip.values]
group_labels = ['Sun', 'Sat', 'Thur']
fig = ff.create_distplot(hist_data, group_labels, bin_size=.2,show_hist=False)
fig.update_layout(title_text='only kde plot')
fig.show()
他にもcolors,bin_size,show_curveなどが指定できる
密度等高線図
import plotly.express as px
df = px.data.iris()
fig = px.density_contour(df, x="sepal_width", y="sepal_length")
fig.show()
import plotly.express as px
df = px.data.iris()
fig = px.density_contour(df, x="sepal_width", y="sepal_length")
fig.show()
等高線の高さで塗りつぶす
import plotly.express as px
df = px.data.iris()
fig = px.density_contour(df, x="sepal_width", y="sepal_length")
fig.update_traces(contours_coloring="fill", contours_showlabels = True)
fig.show()
こういう作り方もある
import plotly.express as px
df = px.data.tips()
fig = go.Figure()
fig.add_trace(go.Histogram2dContour(
x = df['total_bill'].values,
y = df['tip'].values,
colorscale = 'Blues',
reversescale = True,
xaxis = 'x',
yaxis = 'y'
))
fig.show()
join plotも密度等高線図から作れる
import plotly.express as px
df = px.data.iris()
fig = px.density_contour(df, x="sepal_width", y="sepal_length", color="species", marginal_x="rug", marginal_y="histogram")
fig.show()
heat map
ヒストグラム同士の等高線図をheatmapとして表すjoin plot
import plotly.express as px
df = px.data.tips()
fig = px.density_heatmap(df, x="total_bill", y="tip", marginal_x="rug", marginal_y="histogram")
fig.show()
import plotly.express as px
df = px.data.tips()
fig = px.density_heatmap(df, x="total_bill", y="tip", marginal_x="rug", marginal_y="histogram")
fig.show()
Author And Source
この問題について(【密度の可視化】plotlyで動的な可視化をする【python3,hist,kde,join,contour,heat map】), 我々は、より多くの情報をここで見つけました https://qiita.com/Ringa_hyj/items/ac44ed6bc84d536f906b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .