Joh*_*ner 5 python histogram subplot plotly
plotly.express.histogram()我想使用每个子图都有自己的 x轴和 y 轴(为了更好的可读性)来绘制具有行和列面的直方图。在查看文档时(例如,转到“直方图分面网格”部分),我可以看到很多重复 x 轴和 y 轴的示例。但就我而言,这并不是自动完成的。
import numpy as np
import pandas as pd
import plotly.express as px
# create a dummy dataframe with lots of variables
rng = np.random.default_rng(42)
n_vars = 3
n_samples = 10
random_vars = [rng.normal(size=n_samples) for v in range(n_vars)]
m = np.vstack(random_vars).T
columns = pd.MultiIndex.from_tuples([('a','b'),('a','c'),('b','c')],names=['src','tgt'])
df = pd.DataFrame(m,columns=columns)
# convert to long format
df_long = df.melt()
# plot with plotly
fig = px.histogram(df_long,x='value',facet_row='src',facet_col='tgt')
fig.update_layout(yaxis={'side': 'left'})
fig.show()
Run Code Online (Sandbox Code Playgroud)
这给了我:
如何事后配置图形以便为每个子图显示 x 轴和 y 轴?
您需要做的就是通过以下方式自定义每个 y 轴和 x 轴:
fig.for_each_yaxis(lambda y: y.update(showticklabels=True,matches=None))
fig.for_each_xaxis(lambda x: x.update(showticklabels=True,matches=None))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |