6、set_xlim、set_ylim、xticks、yticks、set_xlabels、set_ylabels 和 双坐标轴twin()

matplotlib 专栏收录该内容
13 篇文章 0 订阅

1、set_xlim()、set_ylim()

Matplotlib会自动得出沿x、y(和z轴,如果是3D图)轴显示的变量的最小值和最大值。然而,可以通过使用set_xlim()和set_ylim()函数明确地设置限制。实例如下:

下面代码是自动设置轴变量的:

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
a1 = fig.add_axes([0.3,0.3,0.5,0.5])
x = np.arange(1,10)
a1.plot(x, np.exp(x))
a1.set_title('exp')
plt.show()

显示结果如下:
在这里插入图片描述
给x轴设置在0到10,给y轴设置0到10000,代码如下:

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
a1 = fig.add_axes([0,0,1,1])
x = np.arange(1,10)
# 在axes区域画图并设置颜色为红色
a1.plot(x, np.exp(x),'r')
a1.set_title('exp')
# 给y轴设置变量范围
a1.set_ylim(0,10000)
# 给x轴设置变量范围
a1.set_xlim(0,10)
plt.show()

显示结果如下:
在这里插入图片描述

2、 xticks() 、yticks()、set_xlabels()、set_ylabels()

ticks是表示轴上数据点的标记。xticks()和yticks()函数使用一个列表对象作为参数。列表中的元素表示相应动作上显示ticks的位置。简单来说,ticks就是轴刻度对应的数。这里我们需要学习两个函数:

第一个:xticks() and yticks()

xticks()和yticks()函数使用一个列表对象作为参数。列表中的元素表示相应动作上显示ticks的位置。

ax.set_xticks([2,4,6,8,10])

第二个:set_xlabels() 和 set_ylabels()

ax.set_xlabels([‘two’, ‘four’,’six’, ‘eight’, ‘ten’])

实例如下:

import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes
y = np.sin(x)
ax.plot(x, y)
ax.set_xlabel(‘angle’)
ax.set_title('sine')
ax.set_xticks([0,2,4,6])
#ax.set_xticklabels(['zero','two','four','six'])
ax.set_yticks([-1,0,1])
plt.show()

显示结果如下:ax.set_xticks([0,2,4,6])
在这里插入图片描述
在ax.set_xticks([0,2,4,6])添加一行ax.set_xticklabels([‘zero’,‘two’,‘four’,‘six’])后显示图像如下:
在这里插入图片描述
可以看出,利用set_xticks([0,2,4,6])可以将我们的x轴显示4个刻度值并显示每个刻度上的值,用set_xticklabels([‘zero’,‘two’,‘four’,‘six’])会在x轴下方显示,并会替换掉原来的数字

set_xticks()和set_xticklabels()缺一不可,否则刻度个显示个数不确定,会乱。

3、双坐标轴

有时候我们需要用到双x轴和双y轴。在绘制不同单位的曲线时更是如此。Matplotlib通过twinx和twiny函数来支持这个功能。

在下面的例子中,该图有两个y轴,一个显示exp(x),另一个显示log(x)。

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
a1 = fig.add_axes([0.1,0.1,0.8,0.8])
x = np.arange(1,11)
# 先设置好a1区域
a1.plot(x,np.exp(x))
a1.set_ylabel('exp')
# 利用a1.twin(),则还是这个区域作图,却使用了不同的y轴
a2 = a1.twinx()
a2.plot(x, np.log(x),'ro-')
a2.set_ylabel('log')
fig.legend(labels = ('exp','log'),loc='upper left')
plt.show()

显示结果如下:
在这里插入图片描述

  • 2
    点赞
  • 1
    评论
  • 18
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值