Matplotlib 入门(一):基础操作

本文详细介绍了使用Matplotlib进行绘图的基本步骤与技巧,包括如何绘制简单的图表、调整图表样式、设置坐标轴、添加图例及注释等,并提供了丰富的代码实例。

一、第一张图片

    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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若云流风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值