欢迎关注”生信修炼手册”!
双坐标轴图作为常用的可视化方式之一,可以在同一张图中同时展示两个不同范围的数据,示例如下
在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')