情节图正在父容器之外
Plotly graph is going outside parent container
我正在尝试在 Python 中使用 Plotly 构建一个仪表板。我已经初始化了一个仪表板,并使用 'dash_html_components.Div()' div 将其添加到 portions/containers 中。后来,我用 'dash_core_components.Graph()' 在 div 内绘制图形。当我尝试在 div 内绘制图表时出现问题,该图实际上超出了 div size/container。尽管图形保持宽度,但不保持高度。我在必要的地方添加了评论。
这是我的仪表板的图像,打勾的部分,我想在那里放置一个图表。
没有图表的仪表板:
带图表的仪表板:
代码:
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
import plotly.graph_objs as go
# import pandas_datareader.data as web # requires v0.6.0 or later
from datetime import datetime
import pandas as pd
from datetime import datetime
#building Dashboard
app = dash.Dash()
app.layout = html.Div([ #(row=main, col=main) block
html.Div([ ##(row=1, col=1) block
], style = { ##(row=1, col=1) block style
'display': 'block',
'float': 'left',
# 'margin': 'auto',
'width': '25%',
'height': '50%',
# 'border': '1px solid #006600',
'background-color': 'cyan'
}),
html.Div([ ##(row=1, col=2) block
#graph containing div
dcc.Graph(
id = 'my_graph',
figure={
'data': [go.Scatter(
x = [0,1],
y = [0,1],
mode = 'lines'
)],
'layout': go.Layout(
title = 'graph',
autosize = True
)
}
)
], style = { ##(row=1, col=2) block style
'display': 'block',
'float': 'left',
# 'margin': 'auto',
'width': '25%',
'height': '50%',
# 'border': '1px solid #006600',
'background-color': 'DarkCyan'
}),
html.Div([ ##(row=1, col=3) block
], style = { ##(row=1, col=3) block sty;e
'display': 'block',
'float': 'left',
# 'margin': 'auto',
'width': '50%',
'height': '50%',
# 'border': '1px solid #006600',
'background-color': 'MediumSeaGreen'
})
], style = { #(row=main, col=main) block style
'display': 'block',
'float': 'center',
'margin': '-1vw auto',
# 'margin': '-1vw 11vw 0 11vw',
'width': '70vw',
'height': '30vw',
# 'border': '1px solid #006600',
'background-color': 'gray',
'box-shadow': '10px 10px 5px gray'
})
if __name__ == '__main__':
app.run_server(port=1000)
如果您想让 dcc.Graph
适合 html 布局,您需要为 dcc.Graph
指定一个 style
值。在这种情况下,您可以这样做:
dcc.Graph(
id="my_graph",
figure={
"data": [go.Scatter(x=[0, 1], y=[0, 1], mode="lines")],
"layout": go.Layout(title="graph", autosize=True),
},
style={'height': '100%'}
)
我正在尝试在 Python 中使用 Plotly 构建一个仪表板。我已经初始化了一个仪表板,并使用 'dash_html_components.Div()' div 将其添加到 portions/containers 中。后来,我用 'dash_core_components.Graph()' 在 div 内绘制图形。当我尝试在 div 内绘制图表时出现问题,该图实际上超出了 div size/container。尽管图形保持宽度,但不保持高度。我在必要的地方添加了评论。
这是我的仪表板的图像,打勾的部分,我想在那里放置一个图表。
没有图表的仪表板:
带图表的仪表板:
代码:
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
import plotly.graph_objs as go
# import pandas_datareader.data as web # requires v0.6.0 or later
from datetime import datetime
import pandas as pd
from datetime import datetime
#building Dashboard
app = dash.Dash()
app.layout = html.Div([ #(row=main, col=main) block
html.Div([ ##(row=1, col=1) block
], style = { ##(row=1, col=1) block style
'display': 'block',
'float': 'left',
# 'margin': 'auto',
'width': '25%',
'height': '50%',
# 'border': '1px solid #006600',
'background-color': 'cyan'
}),
html.Div([ ##(row=1, col=2) block
#graph containing div
dcc.Graph(
id = 'my_graph',
figure={
'data': [go.Scatter(
x = [0,1],
y = [0,1],
mode = 'lines'
)],
'layout': go.Layout(
title = 'graph',
autosize = True
)
}
)
], style = { ##(row=1, col=2) block style
'display': 'block',
'float': 'left',
# 'margin': 'auto',
'width': '25%',
'height': '50%',
# 'border': '1px solid #006600',
'background-color': 'DarkCyan'
}),
html.Div([ ##(row=1, col=3) block
], style = { ##(row=1, col=3) block sty;e
'display': 'block',
'float': 'left',
# 'margin': 'auto',
'width': '50%',
'height': '50%',
# 'border': '1px solid #006600',
'background-color': 'MediumSeaGreen'
})
], style = { #(row=main, col=main) block style
'display': 'block',
'float': 'center',
'margin': '-1vw auto',
# 'margin': '-1vw 11vw 0 11vw',
'width': '70vw',
'height': '30vw',
# 'border': '1px solid #006600',
'background-color': 'gray',
'box-shadow': '10px 10px 5px gray'
})
if __name__ == '__main__':
app.run_server(port=1000)
如果您想让 dcc.Graph
适合 html 布局,您需要为 dcc.Graph
指定一个 style
值。在这种情况下,您可以这样做:
dcc.Graph(
id="my_graph",
figure={
"data": [go.Scatter(x=[0, 1], y=[0, 1], mode="lines")],
"layout": go.Layout(title="graph", autosize=True),
},
style={'height': '100%'}
)