一、第一张图片
1、画图三部曲
1.1导入包
import matplotlib.pyplot as plt
1.2绘制
plt.plot(x,y)
1.3显示
plt.show()
2、代码
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 23 16:04:36 2017
@author: ryoyun
"""
# plt base
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,50) # 用 numpy取正负1中的50个数字
## y = 2*x +1
y= x**2 # 生成y序列
plt.plot(x,y) # 绘制
plt.show() # 显示
3、效果
二、改点参数?
1、更改背后窗口
一个figure()就会创建一个图形,我们可以更改图形的参数
2、代码
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 23 16:08:53 2017
@author: ryoyun
"""
# figure
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,50) # 生成序列
y1 = 2*x +1
y2= x**2
plt.figure() # 第一个图像
plt.plot(x,y1)
plt.figure(figsize=(3,3))# 第二个图像
plt.plot(x,y2) # 绘制第一条线
plt.plot(x,y1,color="red",linewidth = 1.0,linestyle = "--")# 绘制第二条线
plt.show()
3、效果
三、改改坐标轴(一)
1、更改方法
1.1 改轴坐标范围
plt.xlim(-1,2)
1.2 改轴坐标名称
plt.xlabel('i am x')
1.3 改轴坐标刻度名称
plt.yticks([-2,-1.8,-1,1.22,3,],[r'$really\ bad$',r'$bad \ \alpha$',r'$normal$',r'$good$',r'$really\ good$'])
2、代码
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 23 16:16:36 2017
@author: ryoyun
"""
# set x,y
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) # x 轴从-1到2
plt.ylim(-2,3) # y 轴从-2到3
plt.xlabel('i am x') # x 轴名称
plt.ylabel('i am y') # y 轴名称
new_ticks = np.linspace(-1,2,5) # 设置x轴坐标点
plt.xticks(new_ticks)
plt.yticks([-2,-1.8,-1,1.22,3,], # 设置y轴坐标点
[r'$really\ bad$',r'$bad \ \alpha$',r'$normal$',
r'$good$',r'$really\ good$']) # 坐标点英文输出
plt.show()
3、效果
四、改改坐标轴(二)
1、更改方法
1.1 更改当前的轴
ax.spines['right'].set_color("none") # 将右面的轴干掉
1.2 定义xy轴
ax.xaxis.set_ticks_position("bottom") # 设置底部边框为x轴
ax.yaxis.set_ticks_position("left") # 设置左面边框未y轴
1.3 设置原点
ax.spines['bottom'].set_position(('data',-1)) # 设置原点(纵坐标-1)ax.spines['left'].set_position(('data',0)) # 设置原点(横坐标0)
2、代码
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 23 16:31:03 2017
@author: ryoyun
"""
# set xy
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'$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") # 设置底部边框为x轴
ax.yaxis.set_ticks_position("left") # 设置左面边框未y轴
ax.spines['bottom'].set_position(('data',-1)) # 设置原点(纵坐标-1)
ax.spines['left'].set_position(('data',0)) # 设置原点(横坐标0)
plt.show()
3、效果
五、加个图例玩玩
1、图例增加
l1, = plt.plot(x,y2,label="up")# 画y2 图例
l2, = plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='down')# 画y1图例
plt.legend(handles=[l1,l2],labels=['aaa','bbb'],loc="best")# 显示图例
2、代码
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 23 16:41:30 2017
@author: ryoyun
"""
# legend
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'$really\ good$'])
l1, = plt.plot(x,y2,label="up") # x,y2 图例
l2, = plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='down') #x,y1图例
plt.legend(handles=[l1,l2],labels=['aaa','bbb'],loc="best") # 图例显示
plt.show()
3、效果
六、增加注释
1、注释增加
1.1annotate方式
1.2 text方式
2、代码
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 23 16:49:40 2017
@author: ryoyun
"""
# annotation
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y = 2*x + 1
plt.plot(x,y,)
plt.figure(num = 1,figsize=(8,5),)
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
x0 = 1
y0 = 2*x0 +1
plt.scatter(x0,y0,color='b')
plt.plot([x0,x0],[y0,0],'k--',lw=2.5)
#method 1 设置标注参数
plt.annotate(r'$2x+1=%s$'% y0,xy=(x0,y0),xycoords='data',xytext=(+30,-30),
textcoords="offset points",fontsize=16,
arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))
#method 2 直接绘制文本来增加注释
plt.text(-3.7,3,r'$this\ is\ the\ some\ text.\ \sigma_i \ \alpha_t$',
fontdict={'size':16,'color':'r'})
plt.show()
3、效果
七、tick 能见度设置
1、相关设置
for lable in ax.get_xticklabels() + ax.get_yticklabels():# 获得xy刻度
lable.set_fontsize(10) # 设置刻度值大小
lable.set_bbox(dict(facecolor='red',edgecolor="None",alpha=0.5))# 设置图例背景
2、代码
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 23 17:22:49 2017
@author: ryoyun
"""
# tick
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y = 0.1*x
plt.figure()
plt.plot(x,y,linewidth=10)
plt.ylim(-2,2)
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
for lable in ax.get_xticklabels() + ax.get_yticklabels():
lable.set_fontsize(10) # 设置刻度值大小
lable.set_bbox(dict(facecolor='red',edgecolor="None",alpha=0.5))# 设置图例背景
3、效果
参考:莫烦python https://morvanzhou.github.io/tutorials/