matplotlib坐标轴设置续-【老鱼学matplotlib】

ResysChina 2017-12-06

本次会讲解如何修改坐标轴的位置。

要修改轴,就要先得到当前轴:plt.gca(),这个函数名挺怪的,其实是如下英文字母的首字母:get current axis,也就是得到当前的坐标轴。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 生成x轴上的数据:从-3到3,总共有50个点
x = np.linspace(-1, 1, 50)
# 定义一个线性方程
y1 = 2 * x + 1
# 定义一个二次方程
y2 = x ** 2
# 设置x轴的取值范围为:-1到2
plt.xlim(-1, 2)
# 设置y轴的取值范围为:-1到3
plt.ylim(-1, 3)
# 设置x轴的文本,用于描述x轴代表的是什么
plt.xlabel("I am x")
# 设置y轴的文本,用于描述y轴代表的是什么
plt.ylabel("I am y")

# 设置x刻度:从-1到2,总共5点
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)

# 设置y刻度:用文字来显示刻度
plt.yticks([-2, -1.8, -1, 1.22, 3],
           [r'$really\ bad$', r'$bad\alpha$', 'normal', r'$good$', 'really good'])

# 得到当前轴
ax = plt.gca()
# 当前轴中有4个脊梁,这里把右边的脊梁设置成none
ax.spines['right'].set_color('none')
# 把上面的脊梁也设置成none
ax.spines['top'].set_color('none')
# 把下面的脊梁用作x轴
ax.xaxis.set_ticks_position('bottom')
# 把左边的脊梁用作y轴
ax.yaxis.set_ticks_position('left')
# 设置下面脊梁原点位置
ax.spines["bottom"].set_position(('data', -1))
# 设置左边脊梁的原点位置
ax.spines["left"].set_position(("data", 0))
plt.plot(x, y2)
# 绘制红色的线宽为1虚线的线条
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
# 显示图表
plt.show()

显示图为:

相关推荐