Matplotlib绘图教程2
设置坐标轴1
设置坐标轴的取值范围
设置坐标轴标签
plt.xlim(( , ))
plt.ylim(( , ))
plt.xlabel(’ ‘)
plt.ylabel(’ ')
示例以及图如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y1 = 2*x+1
y2 = x**2
plt.figure()
plt.plot(x, y2)
plt.plot(x, y1,color='red',linewidth=1.0,linestyle='--')
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('I am x')
plt.ylabel('I am y')
plt.show()
- 如果要把x每格长度代表的数字大小换掉,就跟ticks有关,ticks就是坐标轴上的小标。
运用语句:
plt.xticks(新的刻度标识)
new_ticks = np.linspace(-1,2,5)
print(new_ticks)
plt.xticks(new_ticks)
- 坐标刻度值改为文字:将刻度位置与文字一一对应
plt.yticks([-2,-1.8,-1,1.22,3],
['really bad','bad','normal','good','really good'] )
- 改变刻度字的字体:
- 文字前后加$符号
- 单引号前面加r(正则表达的形式)
- 空格应改成+space
示例:
plt.yticks([-2,-1.8,-1,1.22,3],
[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$'] )
- 加数学形式的alpha:在alpha前面加上转字符
如在bad后加alpha:
b a d α bad\ \alpha bad α
r'$bad\ \alpha$' #第一个转义字符是为了加空格,第二个转义字符是为了把alpha转化成数学形式的alpha
设置坐标轴2
设置坐标轴的位置
为了使(0,0)点为原点,我们需要做如下操作:
- 把右边框和上边框取消
先把坐标轴的轴“拿出来” 先把坐标轴的轴“拿出来”
gca=’get current axis‘
#gca = 'get current axis'
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
先把坐标轴的轴“拿出来”
gca=’get current axis‘
由于图中的x轴和y轴还没有给定,因此要设定x轴和y轴
并设定横坐标的值是纵坐标的0
纵坐标的值是横坐标的0
即找到坐标原点
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',0))#横坐标的值是纵坐标的0
ax.spine['left'].set_position(('data',0))#纵坐标的值是横坐标的0
完整代码如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y1 = 2*x+1
y2 = x**2
plt.figure()
plt.plot(x, y2)
plt.plot(x, y1,color='red',linewidth=1.0,linestyle='--')
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('I am x')
plt.ylabel('I am y')
new_ticks = np.linspace(-1,2,5)
print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2,-1.8,-1,1.22,3],
[r'$really\ bad$',r'$bad alpha$',r'$normal$',r'$good$',r'$really\ good$'] )
#gca = 'get current axis'
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',0))#横坐标的值是纵坐标的0
ax.spines['left'].set_position(('data',0))#纵坐标的值是横坐标的0
plt.show()