绘制双坐标轴图

本文详细介绍了在matplotlib中创建双坐标轴图的两种方法:secondary_axis系列函数和twin系列函数,提供了丰富的代码示例和应用场景分析,帮助读者理解如何在同一图表上展示不同范围的数据。
摘要由CSDN通过智能技术生成

欢迎关注”生信修炼手册”!

双坐标轴图作为常用的可视化方式之一,可以在同一张图中同时展示两个不同范围的数据,示例如下

在matplotib中,有以下两种方式来实现一个双坐标轴图

1. secondary_axis系列函数

具体包含以下两种函数

1.secondary_xaxis

2.secondary_yaxis

第一个函数用于绘制双x轴的图表,第二个函数用于绘制双y轴的图表,以secondary_yaxis函数为例,基本用法如下

>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> ax.plot([1, 2, 3, 4])
>>> ax.secondary_yaxis('right', functions=(lambda x:100 - x, lambda x:100 - x))
>>> plt.show()

输出结果如下

该函数的第一个参数用于指定第二个坐标轴的位置,对于双y轴图表而言,取值范围包括left和right, 对于双x轴的图表而言,取值范围包括top和bottom。

第二个参数用于指定第二个坐标轴的scale, 其值为一个长度为2的元组,其中的每个元素为一个函数,用于指定坐标转换的规则。

对于该函数而言,还可以使用数字来指定第二个坐标轴的位置,对于y轴而言,0对应最左侧,1对应最右侧,用法如下

>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> ax.plot([1, 2, 3, 4])
>>> ax.secondary_yaxis(1.01, functions=(lambda x:100 - x, lambda x:100 - x))
>>> plt.show()

输出结果如下

通过这种方式,可以指定位于图像外围的坐标轴,而且多次指定,可以生成多个坐标轴。该函数的返回值就是一个axes对象,可以借此来设置坐标轴的一些属性,基本用法如下

>>> fig, ax = plt.subplots()
>>> ax.plot([1, 2, 3, 4])
>>> ax1 = ax.secondary_yaxis('right', functions=(lambda x:100 - x, lambda x:100 - x))
>>> ax1.set_ylabel('Second')
可以使用Plotly库来绘制具有坐标轴形。下面是一个示例代码,展示了如何使用Plotly绘制坐标轴: ```python import plotly.graph_objects as go # 创建数据 x = [1, 2, 3, 4, 5] y1 = [10, 15, 7, 12, 9] y2 = [50, 30, 40, 20, 25] # 创建第一个坐标轴 fig = go.Figure() fig.add_trace(go.Scatter(x=x, y=y1, name='y1', line=dict(color='blue'))) # 创建第二个坐标轴 fig.add_trace(go.Scatter(x=x, y=y2, name='y2', line=dict(color='red'), yaxis='y2')) # 设置形布局 fig.update_layout( yaxis=dict(title='y1', titlefont=dict(color='blue'), tickfont=dict(color='blue')), yaxis2=dict(title='y2', titlefont=dict(color='red'), tickfont=dict(color='red'), overlaying='y', side='right'), xaxis=dict(title='x') ) # 显示形 fig.show() ``` 在上面的示例代码中,首先创建了x、y1和y2的数据。然后使用`go.Figure()`创建一个新的形对象,使用`add_trace()`方法分别添加两个散点,分别对应y1和y2的数据。在添加第二个散点时,通过`yaxis='y2'`参数指定其使用第二个坐标轴。 接下来,使用`update_layout()`方法设置形的布局。通过`yaxis`参数设置第一个坐标轴的标题和颜色,通过`yaxis2`参数设置第二个坐标轴的标题、颜色、叠加在第一个坐标轴上、并位于右侧。通过`xaxis`参数设置x轴的标题。 最后,使用`fig.show()`显示形。 运行上述代码,将会得到一个带有坐标轴形,其中y1使用蓝色线条表示,y2使用红色线条表示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值