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()