How to remove the large top and bottom paddings due to top-to-bottom lines?
import numpy as np
import pandas as pd
import plotly.graph_objects as go
count = 100
df = pd.DataFrame(
{
"A": np.random.randint(10, 20, size=(count)),
"B": np.random.randint(10, 20, size=(count)),
"C": np.random.randint(10, 20, size=(count)),
},
index=[f"bar.{i}" for i in range(count)],
)
fig = go.Figure(
data=[
go.Bar(
name=df.columns[0],
orientation="h",
y=df.index,
x=df.iloc[:, 0],
text=df.iloc[:, 0],
),
go.Bar(
name=df.columns[1],
orientation="h",
y=df.index,
x=df.iloc[:, 1],
text=df.iloc[:, 1],
),
go.Scatter(
name=df.columns[2],
y=df.index,
x=df.iloc[:, 2],
text=df.iloc[:, 2],
),
],
layout=dict(
width=512,
height=1024,
margin=dict(l=10, r=10, t=10, b=10),
),
)
fig.update_layout(
xaxis_title=None,
yaxis_title=None,
legend_title=None,
yaxis=dict(
autorange="reversed",
),
)
fig.show()
If I don’t draw the line or reduce the data point count from 100 to 10, I can get rid of the large paddings:
If I draw the line left-to-right, there are no large paddings on both sides also:
import numpy as np
import pandas as pd
import plotly.graph_objects as go
count = 100
df = pd.DataFrame(
{
"A": np.random.randint(10, 20, size=(count)),
"B": np.random.randint(10, 20, size=(count)),
"C": np.random.randint(10, 20, size=(count)),
},
index=[f"bar.{i}" for i in range(count)],
)
fig = go.Figure(
data=[
go.Bar(
name=df.columns[0],
orientation="v",
x=df.index,
y=df.iloc[:, 0],
text=df.iloc[:, 0],
),
go.Bar(
name=df.columns[1],
orientation="v",
x=df.index,
y=df.iloc[:, 1],
text=df.iloc[:, 1],
),
go.Scatter(
name=df.columns[2],
x=df.index,
y=df.iloc[:, 2],
text=df.iloc[:, 2],
),
],
layout=dict(
width=1024,
height=512,
margin=dict(l=10, r=10, t=10, b=10),
),
)
fig.update_layout(
xaxis_title=None,
yaxis_title=None,
legend_title=None,
yaxis=dict(
# autorange="reversed",
),
)
fig.show()