matplotlib包画基本的图
画直线图
1.最简单的用法:
import matplotlib.pyplot as plt
import numpy as np x=np.linspace(-3,3,50) #在(-1,1)范围内生成50个数,等分的,
y=2*x+1 #一张图里画一条线
plt.figure() #如果是一张图里只有一条线,则使用它与不使用他差别不大,如果是在一张图里有2条或多条线,则使用它可以把两条线放在一个图里。
plt.plot(x,y)
plt.show()
2.有的时候需要在一张图里画两条或多条线,这个时候就需要figure()
import matplotlib.pyplot as plt
import numpy as np x=np.linspace(-3,3,50) #在(-1,1)
y=2*x+1
y2=x**2 #一张图里化两条或多条线
plt.figure()
plt.plot(x,y)
plt.plot(x,y2)
plt.show()
3.当设置坐标轴时,需要设置坐标轴的范围,单位长度,替换文字
import matplotlib.pyplot as plt
import numpy as np x=np.linspace(-3,3,50) #在(-1,1)范围内生成50个数,等分的,
y=2*x+1
y2=x**2 #修改图中的样式
plt.figure(num=3,figsize=(8,5))
plt.plot(x,y2)
plt.plot(x,y,color='red',linewidth=2.0,linestyle='--') #设置线段的颜色,长度,样式,注意linestyle的值只能是两个‘-’,不能是其他数量个#设置坐标轴,设置坐标轴的范围,长度,替换文字等
plt.xlim(-1,2) #设置x轴的范围
plt.ylim(-2,3) #设置y轴的范围
plt.xlabel("i am x!") #设置x轴的名称,解释
plt.ylabel("i am y!") #设置y轴的名称,解释
plt.show() #设置坐标轴的刻度的值为指定的值 new_ticks=np.linspace(-1,2,5)
print(new_ticks)
plt.xticks(new_ticks) #设置x轴的刻度和对应的名称
plt.yticks([-2,-1.8,-1,.22,3],[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$']) #设置y轴刻度和对应的名称
plt.show()
4.设置坐标轴之——设置坐标轴的位置
import matplotlib.pyplot as plt
import numpy as np x=np.linspace(-3,3,50) #在(-1,1)范围内生成50个数,等分的,
y=2*x+1
y2=x**2 #修改图中的样式
plt.figure(num=3,figsize=(8,5))
#设置坐标轴原点
plt.plot(x,y2)
plt.plot(x,y,color='red',linewidth=2.0,linestyle='--')
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,.22,3],[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$'])
ax=plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') #.xaxis.set_ticks_position设置x坐标刻度数字或名称的位置:属性值有top,bottom,both,default,none
ax.spines['bottom'].set_position(('data',-1)) #设置边框位置,y=0的位置,即x轴绑定在y=1时的位置上
ax.yaxis.set_ticks_position('left') #.yaxis.set_ticks_position设置x坐标刻度数字或名称的位置
ax.spines['left'].set_position(('data',0)) #设置边框位置,x=0的位置,即y轴绑定在x=0时的位置上
plt.show()
5,图例设置
import matplotlib.pyplot as plt
import numpy as np x=np.linspace(-3,3,50) #在(-1,1)范围内生成50个数,等分的,
y=2*x+1
y2=x**2 #修改图中的样式
plt.figure(num=3,figsize=(8,5))
#设置图例
l1,=plt.plot(x,y2,label='linear line') #label设置label的名字 ,注意l1,和l2,是以逗号结尾的,因为plt.plot返回的是一个列表
l2,=plt.plot(x,y,color='red',linewidth=2.0,linestyle='--',label='square line') #label设置label的名字
plt.legend(handles=[l1,l2],labels=['up','down'],loc='best') #将图例添加到图中的最佳位置
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,.22,3],[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$'])
ax=plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.show()
其中loc参数有多种,best表示自动分配最佳位置,其余为
best->0
upper right->1
upper left->2
lower left->3
lower right->4
right->5
center left->6
center right->7
lower center->8
upper center->9
center->10
画散点图:
import matplotlib.pyplot as plt
import numpy as np #data size
n=1024
X=np.random.normal(0,1,n) #生成1024个数,其中平均数是0,方差是1
Y=np.random.normal(0,1,n)
T=np.arctan2(Y,X) plt.scatter(X,Y,s=75,c=T,alpha=0.5)#大小是75,颜色是T,透明度是0.5,X,Y作为location
plt.xlim(-1.5,1.5)
plt.xticks(())#隐藏x轴
plt.ylim(-1.5,1.5)
plt.yticks(()) #隐藏y轴
plt.show()
画柱状图
import matplotlib.pyplot as plt
import numpy as np n=12
X=np.arange(n) #穗姐生成12个数字,x为0-11的整数,Y为相应的均匀分布的随机数据
Y1=(1-X/float(n)*np.random.uniform(0.5,1.0,n))
Y2=(1-X/float(n)*np.random.uniform(0.5,1.0,n))
plt.bar(X,+Y1,facecolor='#9999ff',edgecolor='white') #facecolar设置主题颜色,edgecolor设置边框颜色为白色
plt.bar(X,-Y2,facecolor='#ff9999',edgecolor='white')
plt.xlim(-0.5,n)
plt.xticks(()) #隐藏x轴
plt.ylim(-1.25,1.25)
plt.yticks(()) #隐藏y轴
for x,y in zip(X,Y1):
plt.text(x+0.4,y+0.05,'%.2f' %y,ha='center',va='bottom')
for x,y in zip(X,Y2): #吧X,Y2分别传到x,y中
plt.text(x+0.4,-y-0.05,'%.2f' %-y,ha='center',va='top') #把数据标记在图上
plt.show()
matplotlib包画基本的图的更多相关文章
- complexHeatmap包画分类热图
用途:一般我们画热图是以连续变量作为填充因子,complexHeatmap的oncopoint函数可以以类别变量作为填充因子作热图. 用法:oncoPrint(mat, get_type = func ...
- 利用Tkinter和matplotlib两种方式画饼状图
当我们学习python的时候,总会用到一些常用的模块,接下来我就详细讲解下利用两种不同的方式画饼状图.首先利用[Tkinter]中的canvas画布来画饼状图: from tkinter import ...
- 用matplotlib.pyplot画简单的折线图,直方图,散点图
#coding=utf-8 """ 用matplotlib.pyplot画简单的折线图,直方图,散点图 """ import matplot ...
- 四步轻松实现用Visio画UML类图
本节和大家一起学习一下用Visio画UML类图的方法,主要有四个步骤,这里和大家分享一下,相信通过本节的学习,你对Visio画UML类图的步骤一定会有所了解. 用Visio画UML类图 对于画类图的工 ...
- 用Visio画UML顺序图
1.顺序图 顺序图又称为时序图,顾名思义,它着重表现的是对象间消息传递的时间顺序.顺序图描述的对象也是一个用例,即一组行为操作,而它表现的是这组行为的先后关系(纵坐标),以及每个行为是属于哪个对象的( ...
- Visio画UML类图、序列图 for Java
参考文档: 1.百度搜索: 怎样用Visio 2007画C++类图 连接 https://jingyan.baidu.com/article/9f7e7ec07286e16f281554f7.html ...
- Python matplot画散列图
同matlab一样,matplot也可画散列图scatter. import numpy as np import matplotlib.pyplot as plt #fig = plt.figure ...
- vue中使用echarts画饼状图
echarts的中文文档地址:https://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20EC ...
- 【学习总结】GirlsInAI ML-diary day-21-初识 Numpy, Matplotlib, Seanborn [柱状图、折线图、箱图]
[学习总结]GirlsInAI ML-diary 总 原博github链接-day21 初识 Numpy, Matplotlib, Seanborn [柱状图.折线图.箱图] 一.Titanic练习赛 ...
随机推荐
- InnoDB和MyISAM的区别与选择
MyISAM 性能(适合小项目,读快速)MyISAM 是MySQL中默认的存储引擎,比如适合新闻系统,读为主.InnoDB 事务或外键支持(适合大项目,高并发读写)活跃用户20多万时候,也能很轻松应付 ...
- 《深入理解Java虚拟机》读书笔记:Java内存区域
xmind文件下载地址
- JDBC Statement对象执行批量处理实例
以下是使用Statement对象的批处理的典型步骤序列 - 使用createStatement()方法创建Statement对象. 使用setAutoCommit()将自动提交设置为false. 使用 ...
- python3处理json文件中含有中文dumps的应用
python3的编码问题一直比较简单 内存中字符串采用unicode 存储到文件中采用utf-8 以下为str,byte互相转换的过程: str = "abc学习" str Out ...
- Linux入门基础教程之Linux下软件安装
Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...
- MATLAB:保存mat文件
X_Y_pred_00_0000.mat里存有三个mat文件: 另存:
- 纯js实现最简单的文件上传(后台使用MultipartFile)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- php扩展模块安装
- 使用go,基于martini,和websocket开发简易聊天室
一.首先,需要了解一下websocket基本原理:here 二.go语言的websocket实现: 基于go语言的websocket也有不少,比如github.com/gorilla/websocke ...
- mysql 类型
1.bigint 范围(-2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) ) 字节大小(8个字节) 2.int 范围(-2^31 ...