画直线图

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包画基本的图的更多相关文章

  1. complexHeatmap包画分类热图

    用途:一般我们画热图是以连续变量作为填充因子,complexHeatmap的oncopoint函数可以以类别变量作为填充因子作热图. 用法:oncoPrint(mat, get_type = func ...

  2. 利用Tkinter和matplotlib两种方式画饼状图

    当我们学习python的时候,总会用到一些常用的模块,接下来我就详细讲解下利用两种不同的方式画饼状图.首先利用[Tkinter]中的canvas画布来画饼状图: from tkinter import ...

  3. 用matplotlib.pyplot画简单的折线图,直方图,散点图

    #coding=utf-8 """ 用matplotlib.pyplot画简单的折线图,直方图,散点图 """ import matplot ...

  4. 四步轻松实现用Visio画UML类图

    本节和大家一起学习一下用Visio画UML类图的方法,主要有四个步骤,这里和大家分享一下,相信通过本节的学习,你对Visio画UML类图的步骤一定会有所了解. 用Visio画UML类图 对于画类图的工 ...

  5. 用Visio画UML顺序图

    1.顺序图 顺序图又称为时序图,顾名思义,它着重表现的是对象间消息传递的时间顺序.顺序图描述的对象也是一个用例,即一组行为操作,而它表现的是这组行为的先后关系(纵坐标),以及每个行为是属于哪个对象的( ...

  6. Visio画UML类图、序列图 for Java

    参考文档: 1.百度搜索: 怎样用Visio 2007画C++类图 连接 https://jingyan.baidu.com/article/9f7e7ec07286e16f281554f7.html ...

  7. Python matplot画散列图

    同matlab一样,matplot也可画散列图scatter. import numpy as np import matplotlib.pyplot as plt #fig = plt.figure ...

  8. vue中使用echarts画饼状图

    echarts的中文文档地址:https://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20EC ...

  9. 【学习总结】GirlsInAI ML-diary day-21-初识 Numpy, Matplotlib, Seanborn [柱状图、折线图、箱图]

    [学习总结]GirlsInAI ML-diary 总 原博github链接-day21 初识 Numpy, Matplotlib, Seanborn [柱状图.折线图.箱图] 一.Titanic练习赛 ...

随机推荐

  1. 第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码

    第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码 打码接口文件 # -*- coding: cp936 -*- import sys import os ...

  2. htop和ncdu

    今天突然发现服务器不能够mkdir了,说没空间,用df -h命令显示空间是很大的,网管过来用ncdu命令一下显示某些文件夹中有好多文件,说是因为linux中小文件太多引发,即实际空间还有很多,但是小文 ...

  3. 目标跟踪之meanshift---meanshift2

    均值漂移,可以对非刚性物理进行跟踪,是分参数估计,过程是迭代的过程,对光和形态不敏感,缺点是检测目标是固定的,特征不较少,模板背景没有实时更新,没有目标的位置精度预测只是梯度浓聚, 原理: 用文字标书 ...

  4. [深入理解Android卷一全文-第三章]深入理解init

    因为<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容. ...

  5. Intellij修改模板代码

    比如class的注释之类的,直接地址为   其中Include才是真正的内容  

  6. <转>Win8.1+CentOS7 双系统 U盘安装

    0.准备工作 1.宏碁 Aspire 4752G 笔记本 2.Win8.1 企业版操作系统 3.8G 以上 U 盘 4.UltraISO(当然也可以选择其他的U盘制作工具,看个人喜好) 5.下载 Ce ...

  7. 条理清晰的搭建SSH环境之整合Struts和Spring

    上文说到搭建SSH环境所需三大框架的jar包,本篇博客将通过修改配置文件整合Struts和Spring,下篇博客整合Hibernate和Spring即可完成环境搭建. 1.声明bean,新建TestA ...

  8. Java初学者不可不知的MyEclipse的设置技巧(自动联想功能)

    最近初学Java,正在使用MyEclipse来编写新的项目,刚开始打开MyEclipse感觉这个工具既陌生又熟悉,熟悉之处在于编辑器的几大共通之处它都具备,比如说基本的设置.编辑区.调试区都是类似的, ...

  9. 用pip批量更新所有包

    p.s在先,事实证明,把电脑里所有的python包一次性更新是吃力不讨好的工作,不过,这是另一回事,如果你一定要这么做,根据http://stackoverflow.com/questions/272 ...

  10. springboot使用@ControllerAdvice(二)之深入理解

    前言: 接口类项目开发时,为了便于后期查找问题,一般会拦截器或过滤器中记录每个接口请求的参数与响应值记录, 请求参数很容易从request中获取,但controller的返回值无法从response中 ...