我想用plotly.express.histogram()
绘制一个带有行和colum的直方图,其中每个子图都有自己的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()
这给了我:
如何对图形进行特殊配置,以便为每个子图显示x和y轴?
发布于 2022-11-10 09:07:49
您所需要做的就是通过以下方式定制每个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))
输出
https://stackoverflow.com/questions/74392223
复制相似问题