Plotly:如何设置y轴的范围?
Plotly: How to set the range of the y axis?
我有以下代码使用 Plotly 创建线图。如何设置 Y 轴的范围始终在 [0; 10]?
layout = go.Layout(
title=go.layout.Title(
text="Test",
xref='paper',
x=0
),
xaxis=go.layout.XAxis(
tickmode='linear',
tickfont=dict(
size=10
),
title=go.layout.xaxis.Title(
font=dict(
size=14,
color='#7f7f7f'
)
)
),
yaxis=go.layout.YAxis(
title=go.layout.yaxis.Title(
text=y,
font=dict(
size=14,
color='#7f7f7f'
)
)
)
)
data = [go.Scatter(x=x1, y=y1)]
如果我的理解是正确的,那么您想要限制 y 轴本身的范围。您可以在关键字参数 yaxis
中传递字典。它可能类似于 go.Layout(yaxis=dict(range=[0, 10]))
我希望这对你有帮助。
新版本更新
设置图形时,您可以使用 plotly 的 magic underscore notation 并像这样指定 layout_yaxis_range=[<from_value>, <to_value>]
:
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines'), layout_yaxis_range=[-4,4])
或者如果您已经有一个名为 fig
的图形,您可以使用:
fig.update_layout(yaxis_range=[-4,4])
并且:
fig.update(layout_yaxis_range = [-4,4])
或者:
fig.update_yaxes(range = [-4,4])
图:
完整代码:
# imports
import pandas as pd
import plotly.graph_objs as go
import numpy as np
# data
np.random.seed(4)
x = np.linspace(0, 1, 50)
y = np.cumsum(np.random.randn(50))
# plotly line chart
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines'), layout_yaxis_range=[-4,4])
fig.update_layout(yaxis_range=[-4,4])
fig.show()
原始答案使用 plotly.offline
、iplot
并且没有神奇的下划线符号:
设置图形时,使用:
layout = go.Layout(yaxis=dict(range=[fromValue, toValue])
或者如果您已经有一个名为 fig
的图形,您可以使用:
fig.update_layout(yaxis=dict(range=[fromValue,toValue]))
剧情:
Jupyter Notebook 的完整代码:
# imports
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import pandas as pd
import plotly.graph_objs as go
import numpy as np
# setup
init_notebook_mode(connected=True)
# data
np.random.seed(4)
x = np.linspace(0, 1, 50)
y = np.cumsum(np.random.randn(50))
# line
trace = go.Scatter(
x=x,
y=y,
)
# layout
layout = go.Layout(yaxis=dict(range=[-4,4])
)
# Plot
fig = go.Figure(data=[trace], layout=layout)
iplot(fig)
一些重要细节:
使用此设置,您可以像这样轻松添加 y 轴标题:
# layout
layout = go.Layout(yaxis=dict(range=[-4,4]), title='y Axis')
)
如果您想进一步格式化该标题,有点 更棘手。我发现使用 title = go.layout.yaxis.Title(text='y Axis', font=dict(size=14, color='#7f7f7f')
实际添加另一个元素最简单。只要方法正确,你应该不会遇到上面评论中的情况:
Thanks. I tried it. But then I have 2 definitions of yaxis in the
Layout: yaxis=dict(range=[0, 10]) and yaxis=go.layout.YAxis. Therefore
an error appears.
看看这个:
剧情:
具有 y-axis 文本格式的完整代码:
# imports
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import pandas as pd
import plotly.graph_objs as go
import numpy as np
# setup
init_notebook_mode(connected=True)
# data
np.random.seed(4)
x = np.linspace(0, 1, 50)
y = np.cumsum(np.random.randn(50))
# line
trace = go.Scatter(
x=x,
y=y,
)
# layout
layout = go.Layout(
yaxis=dict(range=[-4,4],
title = go.layout.yaxis.Title(text='y Axis', font=dict(size=14, color='#7f7f7f')))
)
# Plot
fig = go.Figure(data=[trace], layout=layout)
iplot(fig)
我有以下代码使用 Plotly 创建线图。如何设置 Y 轴的范围始终在 [0; 10]?
layout = go.Layout(
title=go.layout.Title(
text="Test",
xref='paper',
x=0
),
xaxis=go.layout.XAxis(
tickmode='linear',
tickfont=dict(
size=10
),
title=go.layout.xaxis.Title(
font=dict(
size=14,
color='#7f7f7f'
)
)
),
yaxis=go.layout.YAxis(
title=go.layout.yaxis.Title(
text=y,
font=dict(
size=14,
color='#7f7f7f'
)
)
)
)
data = [go.Scatter(x=x1, y=y1)]
如果我的理解是正确的,那么您想要限制 y 轴本身的范围。您可以在关键字参数 yaxis
中传递字典。它可能类似于 go.Layout(yaxis=dict(range=[0, 10]))
我希望这对你有帮助。
新版本更新
设置图形时,您可以使用 plotly 的 magic underscore notation 并像这样指定 layout_yaxis_range=[<from_value>, <to_value>]
:
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines'), layout_yaxis_range=[-4,4])
或者如果您已经有一个名为 fig
的图形,您可以使用:
fig.update_layout(yaxis_range=[-4,4])
并且:
fig.update(layout_yaxis_range = [-4,4])
或者:
fig.update_yaxes(range = [-4,4])
图:
完整代码:
# imports
import pandas as pd
import plotly.graph_objs as go
import numpy as np
# data
np.random.seed(4)
x = np.linspace(0, 1, 50)
y = np.cumsum(np.random.randn(50))
# plotly line chart
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines'), layout_yaxis_range=[-4,4])
fig.update_layout(yaxis_range=[-4,4])
fig.show()
原始答案使用 plotly.offline
、iplot
并且没有神奇的下划线符号:
设置图形时,使用:
layout = go.Layout(yaxis=dict(range=[fromValue, toValue])
或者如果您已经有一个名为 fig
的图形,您可以使用:
fig.update_layout(yaxis=dict(range=[fromValue,toValue]))
剧情:
Jupyter Notebook 的完整代码:
# imports
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import pandas as pd
import plotly.graph_objs as go
import numpy as np
# setup
init_notebook_mode(connected=True)
# data
np.random.seed(4)
x = np.linspace(0, 1, 50)
y = np.cumsum(np.random.randn(50))
# line
trace = go.Scatter(
x=x,
y=y,
)
# layout
layout = go.Layout(yaxis=dict(range=[-4,4])
)
# Plot
fig = go.Figure(data=[trace], layout=layout)
iplot(fig)
一些重要细节:
使用此设置,您可以像这样轻松添加 y 轴标题:
# layout
layout = go.Layout(yaxis=dict(range=[-4,4]), title='y Axis')
)
如果您想进一步格式化该标题,有点 更棘手。我发现使用 title = go.layout.yaxis.Title(text='y Axis', font=dict(size=14, color='#7f7f7f')
实际添加另一个元素最简单。只要方法正确,你应该不会遇到上面评论中的情况:
Thanks. I tried it. But then I have 2 definitions of yaxis in the Layout: yaxis=dict(range=[0, 10]) and yaxis=go.layout.YAxis. Therefore an error appears.
看看这个:
剧情:
具有 y-axis 文本格式的完整代码:
# imports
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import pandas as pd
import plotly.graph_objs as go
import numpy as np
# setup
init_notebook_mode(connected=True)
# data
np.random.seed(4)
x = np.linspace(0, 1, 50)
y = np.cumsum(np.random.randn(50))
# line
trace = go.Scatter(
x=x,
y=y,
)
# layout
layout = go.Layout(
yaxis=dict(range=[-4,4],
title = go.layout.yaxis.Title(text='y Axis', font=dict(size=14, color='#7f7f7f')))
)
# Plot
fig = go.Figure(data=[trace], layout=layout)
iplot(fig)