plotly 多坐标轴(multiple axes)设置

多坐标轴设置(multiple axes)

import plotly.io as pio
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd
import numpy as np

# 设置plotly默认主题
pio.templates.default = 'plotly_white'

# 设置pandas打印时显示所有列
pd.set_option('display.max_columns', None)

官方示例:https://plotly.com/python/multiple-axes/

  • 借助划分子图中的 specs 中的 secondary_y 属性,可以开启第二纵轴,例如:
fig = make_subplots(specs=[[{'secondary_y': True}]])

fig.add_trace(
    go.Scatter(
        x=[1, 2, 3], y=[40, 50, 60], name='第一纵轴'
    ),
    secondary_y=False, # 使用 add_trace 中的 secondary_y 参数选择是否使用第二纵轴
)

fig.add_trace(
    go.Scatter(x=[2, 3, 4], y=[4, 5, 6], name="第二纵轴"),
    secondary_y=True,
)

fig.update_yaxes(title_text="<b>primary</b> yaxis title", secondary_y=False)
fig.update_yaxes(title_text="<b>secondary</b> yaxis title", secondary_y=True)

fig.write_image('../pic/multi_axes_1.png', scale=2)
fig.show()

在这里插入图片描述

fig = make_subplots(rows=2, cols=2,
                    specs=[[{"secondary_y": True}, {"secondary_y": True}],
                           [{"secondary_y": True}, {"secondary_y": True}]])

# Top left
fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[2, 52, 62], name="yaxis data"),
    row=1, col=1, secondary_y=False)

fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[40, 50, 60], name="yaxis2 data"),
    row=1, col=1, secondary_y=True,
)

# Top right
fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[2, 52, 62], name="yaxis3 data"),
    row=1, col=2, secondary_y=False,
)

fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[40, 50, 60], name="yaxis4 data"),
    row=1, col=2, secondary_y=True,
)

# Bottom left
fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[2, 52, 62], name="yaxis5 data"),
    row=2, col=1, secondary_y=False,
)

fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[40, 50, 60], name="yaxis6 data"),
    row=2, col=1, secondary_y=True,
)

# Bottom right
fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[2, 52, 62], name="yaxis7 data"),
    row=2, col=2, secondary_y=False,
)

fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[40, 50, 60], name="yaxis8 data"),
    row=2, col=2, secondary_y=True,
)

fig.write_image('../pic/multi_axes_2.png', scale=2)
fig.show()

在这里插入图片描述

  • 使用底层API创建多纵轴,yaxis参数
fig = go.Figure()

fig.add_trace(go.Scatter(
    x=[1, 2, 3],
    y=[4, 5, 6],
    name="yaxis1 data"
))

# 指定 yaxis 参数,从y2开始顺序递增
fig.add_trace(go.Scatter(
    x=[2, 3, 4],
    y=[40, 50, 60],
    name="yaxis2 data",
    yaxis="y2"
))

fig.add_trace(go.Scatter(
    x=[4, 5, 6],
    y=[40000, 50000, 60000],
    name="yaxis3 data",
    yaxis="y3"
))

fig.add_trace(go.Scatter(
    x=[5, 6, 7],
    y=[400000, 500000, 600000],
    name="yaxis4 data",
    yaxis="y4"
))


# Create axis objects
fig.update_layout(
    xaxis=dict(
        domain=[0.3, 0.7]
    ),
    yaxis=dict(
        title="yaxis title",
        titlefont=dict(
            color="#1f77b4"
        ),
        tickfont=dict(
            color="#1f77b4"
        )
    ),
    yaxis2=dict(
        title="yaxis2 title",
        titlefont=dict(
            color="#ff7f0e"
        ),
        tickfont=dict(
            color="#ff7f0e"
        ),
        anchor="free",
        overlaying="y",
        side="left",
        position=0.15
    ),
    yaxis3=dict(
        title="yaxis3 title",
        titlefont=dict(
            color="#d62728"
        ),
        tickfont=dict(
            color="#d62728"
        ),
        anchor="x",
        overlaying="y",
        side="right"
    ),
    yaxis4=dict(
        title="yaxis4 title",
        titlefont=dict(
            color="#9467bd"
        ),
        tickfont=dict(
            color="#9467bd"
        ),
        anchor="free",
        overlaying="y",
        side="right",
        position=0.85
    )
)

# Update layout properties
fig.update_layout(
    title_text="multiple y-axes example",
    width=800,
)

fig.show()

在这里插入图片描述

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Matlab GUI 中设置坐标轴可以使用函数 "axes"。例如,可以使用以下代码在 GUI 中创建一个坐标轴并将其命名为 "myaxes": ``` myaxes = axes('Parent', myfigure); ``` 在这里,"myfigure" 是已经创建的 GUI 窗口。 您还可以使用 "xlabel","ylabel" 和 "zlabel" 函数为坐标轴添加标签,例如: ``` xlabel(myaxes,'X-axis'); ylabel(myaxes,'Y-axis'); zlabel(myaxes,'Z-axis'); ``` 您还可以使用"set"函数来设置坐标轴的属性,例如: ``` set(myaxes,'XGrid','on','YGrid','on','ZGrid','on'); ``` 上面的代码将开启X,Y,Z轴的网格线 最后请注意,在绘制图形之前,需要先选定当前坐标轴。可以使用以下代码选定 "myaxes" 坐标轴: ``` axes(myaxes); ``` 希望这些信息能帮助你! ### 回答2: MATLAB是一种广泛应用于数学、工程等领域的计算软件,而GUI是MATLAB提供的一种图形用户界面设计工具。在MATLAB中,存在着用于绘制图像的函数axes,它可以被嵌入到GUI界面中用于显示二维图像和三维图像。axes提供了设置图像中坐标轴的功能,下面将详细介绍如何设置MATLAB GUI axes坐标轴。 首先,我们需要先创建一个绘图对象,比如图像,使用MATLAB的imshow或plot函数,将绘图对象置于axes控件中。接着,在代码中使用axes对象的属性来更改坐标轴的绘制样式,包括轴范围、轴标签、轴线以及其他用于地图绘制和数据可视化等功能的属性设置。具体来说,我们要注意以下几点: 1.设置轴范围:可以使用axes的xlim和ylim属性来设置每个轴的坐标范围,比如:axes.XLim = [x_min x_max]; 2.设置轴标签:可以使用xlabel、ylabel和title函数分别设置x轴、y轴和整个图像的标题,比如:xlabel('x label'); 3.设置轴刻度:可以使用xticks、yticks和xticklabels、yticklabels等函数设置坐标轴刻度线以及标记,比如:xticks(x_tick_location); 4.设置轴线:可以使用axes的XColor、YColor、ZColor属性来设置不同轴线的颜色和样式,通过LineWidth属性设置轴线宽度,比如:axes.XColor = [1 0 0]; axes.XGrid = 'on'; 5.设置网格线:可以使用xgrid、ygrid函数显示网格线,并使用XGrid、YGrid或ZGrid属性来控制是否显示网格线,比如:xgrid on; 总的来说,以上这些属性的设置是非常灵活的,它们使我们可以控制axes的显示方式和样式,使其更符合我们的需求。当然,axes的其他属性设置还包括了坐标轴的长度、位置、字体大小、颜色等,这些属性可以结合不同的情景进行合理设置,从而使我们的图像具有更好的可视化效果。 综上所述,设置MATLAB GUI axes坐标轴需要熟练掌握axes的各种属性,并结合项目需求进行合理的设置。在实际使用中,我们需要对axes更深入的了解和掌握,以便更好的利用它进行数据可视化和图像绘制。 ### 回答3: Matlab是一个强大的集成开发环境,它支持许多不同的编程应用场景,包括开发GUI(图形用户界面)。在Matlab的GUI中,关键部分之一是图像,其绘制和操作大多依赖于Axes对象(坐标轴对象)。本文将介绍如何使用Matlab GUI Axes设置坐标轴。 首先,打开Matlab GUI,在GUIDE(GUI开发环境)中选择Axes组件,然后将其拖放到你的GUI窗口中。默认情况下,Axes组件将会显示一个空白的平面坐标,它允许用户绘制直线、散点和其他图形。Axes组件还提供了许多其他功能,包括设置坐标轴范围、刻度、标签等。 其次,设置坐标轴的范围。在MATLAB GUI Axes中,你可以使用“xlim”和“ylim”等命令设置坐标轴的范围。例如,如果你想设置x轴范围为0到10,而y轴范围为-5到5,可以使用以下命令: xlim([0 10]) ylim([-5 5]) 这将使你的Axes组件显示在坐标轴范围内的任何图像。 第三,设置坐标轴的刻度(tickmarks)。Axes组件提供了一系列用于设置坐标轴刻度的命令,例如: set(gca,'XTick',[0:1:10]) set(gca,'YTick',[-5:1:5]) 该命令将设置x轴的刻度为0到10以1的间隔,y轴的刻度为-5到5以1的间隔。刻度还可以通过“XTicklabel”和“YTicklabel”命令设置标签。 第四,设置坐标轴的标签。你可以使用“xlabel”和“ylabel”命令设置x轴和y轴的标签: xlabel('x轴') ylabel('y轴') 最后,还可以设置其他参数,例如坐标轴的标题、字体大小、颜色等等。总的来说,MATLAB GUI的Axes组件提供了多种方法来设置坐标轴,这些方法可以通过命令行或GUI工具栏完成。熟练操作这些命令可以使你更好地进行Matlab GUI设计和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值