Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Plotly equivalent for pd.DataFrame.hist

I am looking for a way to imitate the hist method of pandas.DataFrame using plotly. Here's an example using the hist method:

import seaborn as sns
import matplotlib.pyplot as plt

# load example data set
iris = sns.load_dataset('iris')

# plot distributions of all continuous variables
iris.drop('species',inplace=True,axis=1)
iris.hist()
plt.tight_layout()

which produces:

enter image description here

How would one do this using plotly?

EDIT:

I am looking for a method where the user doesn't explicitly has to define the number of rows and columns and where the output plot should be as 'square-like' as possible. pd.DataFrame.hist by default will create square-like plots when not being provided with a particular number of columns.

like image 551
Johannes Wiesner Avatar asked Nov 29 '25 06:11

Johannes Wiesner


1 Answers

You can make subplots using plotly's make_subplots() function. From there you add traces with the desired data and position within the subplot.

from plotly.subplots import make_subplots
import plotly.graph_objects as go

fig = make_subplots(rows=2, cols=2)

fig.add_trace(
    go.Histogram(x=iris['petal_length']),
    row=1, col=1
)
fig.add_trace(
    go.Histogram(x=iris['petal_width']),
    row=1, col=2
)
fig.add_trace(
    go.Histogram(x=iris['sepal_length']),
    row=2, col=1
)
fig.add_trace(
    go.Histogram(x=iris['sepal_width']),
    row=2, col=2
)

example

like image 198
Thomas DeGreve Avatar answered Dec 01 '25 19:12

Thomas DeGreve