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/
- Matplotlib 入门(一):基础操作
- matplotlib.pyplot基础(一)
- 9、matplotlib 基础入门
- 机器学习笔记(一):matplotlib入门
- 数据可视化(一)-Matplotlib简易入门
- Matplotlib之pyplot常用操作(一)
- python包matplotlib基础入门
- [笔记]SciPy、Matplotlib基础操作
- 数据可视化——Matplotlib模块入门(一)
- (一)基础入门
- matplotlib(学习一)
- Python-matplotlib入门--基础图表的绘制
- python matplotlib 入门系列一:基本用法
- PyQt5+OpenCV+Matplotlib 基础操作教程代码
- Matplotlib 入门(二):画图
- XML基础入门(一)
- XML基础入门(一)
- XML基础入门(一)
- p次方求和
- Android 高级进阶(源码剖析篇)
- 源码阅读---AMS与Activity启动流程
- 正则表达式中各种字符的含义
- 0-999的水仙花数
- Matplotlib 入门(一):基础操作
- 学习的分享
- Kaggle数据条目爬取存储到mongodb
- MFC-Error(2):fatal error LNK1207: incompatible PDB format
- 2017 icpc 北京赛区 A.Visiting Peking University
- JDBC 实现oracle事务的回滚
- oracle配置监听问题——注册表中没有OracleOraDb11g_home1TNSListener
- JavaScript 编写线程代码引用Concurrent.Thread.js
- 09 Servlet学习笔记