matplotlib---设置坐标轴

import matplotlib.pyplot as plt
import numpy as np

# 一维数组, 元素为从-3到3之间均匀地产生50个点
x = np.linspace(-3, 3, 50)

y1 = 2 * x + 1
y2 = x ** 2


# num=3表示图片上方标题, figsize设置figure大小
plt.figure(num=3, figsize=(8, 5))
plt.plot(x, y1)

# 设置红色虚线宽度为1.0
plt.plot(x, y2, color='red', linewidth=1, linestyle='--')

# ## 设置坐标轴 ## #
# 设置x和y轴的范围
plt.xlim((-1, 2))
plt.ylim((-2, 3))

# 设置坐标轴含义, 中文需要加fontproperties属性
plt.xlabel('价格', fontproperties='SimHei')
plt.ylabel('利润', fontproperties='SimHei')

# 设置x轴和y轴的刻度
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)

"""
设置对应坐标用汉字或英文表示, 后面的fontproperties表示中文不乱码,
$$表示将英文括起来, r表示正则[配, 可以变为好看的字体
显示特殊字符, 比如阿尔法, 用转义符\alpha, 前面的\表示空格转义
"""
plt.yticks([-2, -1.8, -1, 1.22, 3.], ['非常糟糕', '糟糕', r'$good\ \alpha$', r'$really\ good$', '超级好'],
           fontproperties='SimHei')

# 设置边框/坐标轴
# gca = 'get current axis/获取当前轴线'
ax = plt.gca()
# 取消右边和上边轴, spines就是四个边框
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

# matplotlib并没有设置默认的x轴和y轴, 设置默认轴
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

# 设置坐标原点
# 将(0, -1)设置为坐标原点
# x轴放置到y轴-1点处
ax.spines['bottom'].set_position(('data', -1))
# 将y轴放置到x轴0点处
ax.spines['left'].set_position(('data', 0))
# 使用set_position之后中文显示不出来
plt.yticks([-2, -1.8, -1, 1.22, 3.], ['非常糟糕', '糟糕', r'$good\ \alpha$', r'$really\ good$', '超级好'],
           fontproperties='SimHei')

plt.show()

posted @ 2020-11-07 16:37  凯旋.Lau  阅读(2186)  评论(0编辑  收藏  举报