Matplotlib 入门(一):基础操作

来源:互联网 发布:淘宝三个心要多少好评 编辑:程序博客网 时间:2024/06/07 17:46

一、第一张图片

    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 baseimport matplotlib.pyplot as pltimport numpy as npx = np.linspace(-1,1,50)  # 用 numpy取正负1中的50个数字## y = 2*x +1y= 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"""# figureimport matplotlib.pyplot as pltimport numpy as npx = np.linspace(-1,1,50)    # 生成序列y1 = 2*x +1y2= x**2plt.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 pltimport numpy as npx = np.linspace(-3,3,50)y1 = 2*x +1y2= x**2plt.figure()plt.plot(x,y2)plt.plot(x,y1,color="red",linewidth = 1.0,linestyle = "--")plt.xlim(-1,2)          # x 轴从-1到2plt.ylim(-2,3)          # y 轴从-2到3plt.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 pltimport numpy as npx = np.linspace(-3,3,50)y1 = 2*x +1y2= x**2plt.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"""# legendimport matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3,3,50)y1 = 2*x +1y2= x**2plt.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"""# annotationimport matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3,3,50)y = 2*x + 1plt.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 = 1y0 = 2*x0 +1plt.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"""# tickimport matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3,3,50)y = 0.1*xplt.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/

原创粉丝点击