importmatplotlib.pyplot as pltimportnumpy as np

x= np.linspace(-10, 20, 50, True)

y= 2 * x + 5

#一、画散点图

plt.scatter(x,y,s=40,c='Orange',edgecolors='k',marker='s',alpha=0.5)#s:大小;c:内部颜色;edgecolors:边框颜色;marker:点的形状;alpha:透明度

plt.show()

matplot画板颜色请点击这里;点的形状请点击这里#二、画折线图与线段

plt.figure()

plt.plot(x, y, label='line1')

plt.plot(x, y+ 4, c='r', lw=2, ls=':', label='line2')#c:颜色;lw:线宽;ls:线段类型,有“:”“--”“-”等;lebel:画图图例;

plt.plot([-10, 0], [-10, 0], ls='--', label='line3') #两点连线

plt.legend()

plt.show()#三、画柱状图#1、单一柱状图

plt.figure()

bar_x= np.arange(5)

bar_y= np.arange(5)

rects= plt.bar(bar_x, height=bar_y, width=0.8,orientation='vertical')#给每个柱添加数据标识

for rect inrects:

plt.text(rect.get_x()+ rect.get_width() / 2, rect.get_height(), rect.get_height(), ha='center', va='bottom')

plt.show()#2、横向柱状图#method 1 :

plt.figure()

plt.barh(bar_y,bar_x,height=0.8,left=0) #left柱状图左边的起始位置,0表示从x=0开始

plt.show()#method 2 :

plt.figure()

plt.bar(x=0,bottom=bar_x, width=bar_y, height=0.5,orientation='horizontal') #bottom:柱状图底部起始位置为y=bar_x,orientation设置柱状图方向

plt.show()#3、并列图

plt.figure()

plt.bar(bar_x, height=bar_y, width=0.2,orientation='vertical',color='b') #第一个蓝色柱状图

plt.bar(bar_x+0.2, height=bar_y, width=0.2,orientation='vertical',color='r') #第二个红色柱状图,用bar_x+0.2设置宽度及柱状图偏移的方式将其与第一个图分开

plt.show()#4、堆叠图

plt.figure()

plt.bar(bar_x, height=bar_y, width=0.2,orientation='vertical',color='b') #第一个蓝色柱状图

plt.bar(bar_x, height=bar_y, width=0.2,bottom=bar_x,orientation='vertical',color='r') #第二个红色柱状图,用bottom=bar_x设置底部起点的方式将其与第一个图分开

plt.show()#四、直方图(频数图)

plt.hist(np.random.normal(0,2,1000),bins=100,density=True) #bins:分箱个数,若传入一个list,如[0,1,2,3]表示根据0、1、2、3位断点分箱

plt.show()#五、饼状图

plt.figure()

plt.axes(aspect=1) #设置xy比例不然饼状图会被压扁

plt.pie([1,2,3,4,5],explode=[0.5,0,0,0,0],labels=list('abcde'),autopct='%.2f%%',shadow=True)#explode:一个list表示每一部分离中心的距离,autopct='%.2f%%'显示百分比,shadow=True生成阴影更好看

plt.show()#六、箱形图

plt.figure()

plt.boxplot(np.random.normal(0,1,1000),sym='o',whis=1.5) #sym异常点显示类型,whis设置异常点范围,[Q1-whis*IQR,Q3+whis*IQR]以外的为异常值

plt.figure()

plt.boxplot(np.random.normal(0,1,(1000,4)),sym='o',whis=1.5) #传入多维数组可以画多个箱形图

plt.show()#七、画坐标轴为日期的图

d=['2019-01','2019-02','2019-03','2019-04','2019-05','2019-06','2019-07','2019-08','2019-09','2019-10','2019-11','2019-12']

plt.plot_date(d,y[0:12])

plt.show()#八、设置画板figure

plt.figure(num='fig1',figsize=(8,6),facecolor='w',edgecolor='k') #num:画板名,figsize=(8,6)画板长宽,facecolor:底色,edgecolor边框颜色

plt.title('fig1') 添加图标题

plt.plot([0,1],[0,1])

plt.figure(num='fig2') #定第二个画板,可以显示两个图,不然会在原来的fig2上覆盖

plt.title('fig2')

plt.plot([0,1],[1,0])#获取当前图标与子图可以使用plt.gcf()和plt.gca()获得,分别表示Get Current Figure和Get Current Axes,在pyplot模块中,#许多函数都是对当前的Figure或Axes对象进行处理,比如说:plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调用ax.plot()方法实现真正的绘图。

plt.show()#九、坐标轴设置

plt.figure()

plt.title('fig1')

plt.xlim((0,10)) #修改x坐标轴范围

plt.plot([0, 20], [20, 0])

plt.xlabel(r'$x\ label$') #添加x轴标签,matplotlib中使用$$表示latex数学字符,空格要用\转义

plt.figure()

plt.title('fig2')

plt.xticks(np.linspace(0,10, 3, True)) #修改x标签的数值间隔

plt.plot([0, 10], [10, 0])

plt.figure()

plt.title('fig3')

plt.xticks(ticks=np.linspace(0, 10, 3, True), labels=['2015', '2016', '2017']) #用lebals替换x轴ticks的对应数值

plt.plot([0, 10], [10, 0])

plt.figure()

plt.title('fig4')

ax=plt.gca()

ax.spines['right'].set_color('None') #去除右坐标轴颜色,相当于隐藏,spines表示子图方框线集合,left、bottom、right、top表示四个方框线

ax.spines['top'].set_color('None') #去除上坐标轴颜色,相当于隐藏

ax.xaxis.set_ticks_position('bottom') #设置x轴位置为底部,可设置为上侧top

ax.yaxis.set_ticks_position('left') #设置y轴位置为左侧,可设置为右侧right

ax.spines['bottom'].set_position(('data', 5)) #底部的坐标轴放在y=5的位置,data表示采用数据轴,(data,5)替换成(axes,0.5)则表示放在y轴%50的位置

ax.spines['left'].set_position(('data', 5)) #左侧的坐标轴放在x=5的位置

plt.plot([0, 10], [10, 0])

plt.show()#十、绘制图例

plt.figure()

l1,=plt.plot(x,y,c='g',label='y=2*x+5') #返回值不止一个所以l1后面加一个逗号,参数label为画图图例

l2,=plt.plot(x,-y,c='y',label='y=2*x+5')

plt.legend(loc='upper center') #显示所有画图图例,参数loc为图例位置,默认为loc='best',自动选取位置

plt.figure()

l1,=plt.plot(x,y,c='g',label='y=2*x+5')

l2,=plt.plot(x,-y,c='y',label='y=2*x+5')

plt.legend(handles=[l1,l2],labels=['f=2*x+5','f=2*x+5'],loc='') #对特定的图添加指定的图例说明,参数handles为line对象

plt.show()#十一、添加注解#1、给点添加注解

plt.figure()

plt.scatter(1, 1, c='r', marker='o') #画(1,1)点

plt.annotate(s=r'$this\ is\ an\ annotate$', xy=(1, 1), xycoords='data', xytext=(30, -30), textcoords='offset points',

fontsize=16, arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))#s:注释;xy:要注释的点的坐标;xycoords='data':点的坐标为数据坐标;xytext=(30, -30):注释的坐标为(30,-30);#textcoords='offset points':注释的坐标轴为以点为原点进行偏移;fontsize:字体大小;#arrowprops:设定箭头,arrowstyle箭头类型为'->',connectionstyle连接类型为'arc3,rad=.2'

#2、在指定位置添加注解

plt.figure()

plt.scatter(1, 1, c='r', marker='o') #画(1,1)点

plt.text(1,1,r'$this\ is\ a\ text$',fontdict=dict(size=16,color='r'), ha='center', va='bottom') #在点(1,1)处添加文档,ha、va表示左右上下对齐方式

plt.show()#十二、绘制多个图在一个面板中#method 1 :在大小相同的格子中画图

plt.subplot(221) #画板分为2*2,在位置1画图

plt.plot(x, y)

plt.scatter(5,0,marker='o',edgecolors='b',facecolors='r')

plt.subplot(222)

plt.plot(x,-y)

plt.show()#method 2 :在自定义大小的格子中画图

ax1=plt.subplot2grid((3,3),(0,0),colspan=3,rowspan=1) #画板分成3*3网格,ax1位置在(0,0),跨度为3列1行

ax1.plot([0,1],[0,1])

ax1.set_title('ax1')

ax2=plt.subplot2grid((3,3),(1,1),colspan=3,rowspan=3) #画板分成3*3网格,ax1位置在(1,1),跨度为3列3行

ax2.plot(x,-y)

ax2.set_title('ax2')

ax3=plt.subplot2grid((3,3),(1,0),colspan=1,rowspan=1) #画板分成3*3网格,ax1位置在(1,0),跨度为1列1行

ax3.plot(x,-y)

ax3.set_title('ax3')

plt.show()#十三、图中图,利用在同一画板定义多个坐标轴实现

fig=plt.figure()

left,bottom,width,height=0.1,0.1,0.8,0.8 #定义坐标轴的左、下坐标轴位置,宽、高的跨度,用百分比的形式

ax1=fig.add_axes([left,bottom,width,height]) #加入第一个坐标轴

ax1.plot(x,y,c='y')

ax1.set_titile('ax1')

ax2=fig.add_axes([left,bottom,width,height]) #加入第二个坐标轴

ax2.plot(x,-y,c='g')

ax2.set_titile('ax2')

plt.show()#十四、主次坐标轴

fig,ax1=plt.subplots()

ax2=ax1.twinx() #镜像ax1得到次坐标轴

ax1.plot([0,1],[0,1],c='r')

ax2.plot([0,1],[1,0],c='y')

plt.show()

python3.8自带matlop和numpy吗_python3.8自带matlop和numpy吗_python之matloplib可视化相关推荐

  1. pyhton 安装pip 以及 numpy (解决python:ModuleNotFoundError:No module named numpy 等类似缺包问题

    https://blog.csdn.net/phs999/article/details/79218869 pyhton 安装pip 以及 numpy (解决python:ModuleNotFound ...

  2. numpy python2_盘一盘 Python 系列 2 - NumPy (上)

    原标题:盘一盘 Python 系列 2 - NumPy (上) 0 引言 本文是 Python 系列的第三篇 数组计算之 NumPy (上) 数组计算之 NumPy (下) Numpy 是 Pytho ...

  3. NumPy 超详细教程(1):NumPy 数组

    系列文章地址 NumPy 最详细教程(1):NumPy 数组 NumPy 超详细教程(2):数据类型 NumPy 超详细教程(3):ndarray 的内部机理及高级迭代 文章目录 系列文章地址 1.N ...

  4. 带负荷测试要求二次最小电流_带负荷检查

    (0) 1 引言 差动保护原理简单.使用电气量单纯.保护范围明确.动作不需延时,一直 用于变压器做主保护, 其运行情况直接关系到变压器的安危. 怎样才知道差动保 护的运行情况呢?怎样才知道差动保护的整 ...

  5. 带缓冲的I/O操作和不带缓冲的I/O操作

    首先要明白不带缓冲的概念:所谓不带缓冲,并不是指内核不提供缓冲,而是只单纯的系统调用,不是函数库的调用.系统内核对磁盘的读写都会提供一个块缓冲(在有些地方也被称为内核高速缓存),当用write函数对其 ...

  6. numpy 矩阵与向量相乘_有人把NumPy画成了花,生动又形象

    发现有很多想要学习Python却不知道如何下手的朋友,我这里整理了一些关于Python的学习资料,从基础到入门到实战都有!有需要的朋友可以关注并私信"01"免费获取... 创建数组 ...

  7. 计算机专业开学要带电脑吗,大学新生刚开学需要带电脑吗

    大学新生刚开学需要带电脑吗2017-08-16 08:57:38文/叶丹 高三毕业之后,我们很快就步入了大学.高中生活是压抑的,那么无疑到了大学我们如脱了缰的野马,渴望自由的,大学的生活对于我们来说是 ...

  8. numpy.arange()官方用法详解(附numpy官方文档)

    numpy.arange numpy官方说明文档:https://numpy.org/doc/1.18/reference/generated/numpy.arange.html#numpy.aran ...

  9. 各自然带代表植被_景观学习 | 消落带的景观设计

    消落带又称消落区,是水库特有的一种现象,是指水库季节性水位涨落使被淹没土地周期性出露于水面的区域.当今消落带景观处理中,大部分以硬质护坡.硬质步道以及硬质平台为主,缺乏活力,景观形式单一. 今年快题对 ...

最新文章

  1. 序列建模:时间卷积网络取代RNN(An Empirical Evaluation of Generic Convolutional and Recurrent)论文 pdf
  2. 地理信息系统控件GIS控件TatukGIS Developer Kernel 下载及介绍
  3. Spring Boot Serverless 实战系列“架构篇” | 光速入门函数计算
  4. DCMTK:类DcmVR:值表示
  5. labview自动生成html,使用LabVIEW实现网页数据提取及交互.pptx
  6. 操作系统死机的12个问题
  7. 忽然发现自己少了很多爱好。。。。。。。。。
  8. 对Object.prototype.toString.call(obj)的理解
  9. Git和SVN的区别(以后别再问我了)
  10. 一文看懂主流区块链攻击底层逻辑 | 博文精选
  11. numpy数组切片操作之[:,2]、[-1:,0:2]、[1:,-1:]等都是啥?
  12. 普通住宅和商住公寓购房扫盲
  13. MFC界面开发中的一些问题
  14. 【基于stm32 FreeRtos的智能台灯控制】
  15. 抢票软件依旧跑得欢 记者25分钟抢两张热门票
  16. Modelsim使用方法
  17. ThinkPad 水货笔记本
  18. java简单投票系统_基于SpringBoot的简约投票系统
  19. 谈谈我对Mac笔记本的使用感受
  20. 如何在Mirth Connect中创建和调用自定义Java代码

热门文章

  1. Java开发知识之Java的包装类
  2. 管理docker容器
  3. Nginx笔记总结十六:nginx优化指南
  4. 2016京东编程题:年终奖
  5. 在线Excel文件解析转换成JSON格式
  6. Spring Bean垃圾回收
  7. Nginx平滑添加模块
  8. 数据实验室:让您的数据获得真正的价值
  9. 韵达混合云深度解析:Docker助力大规模云上调度实践
  10. MySQL与Oracle的数据迁移注意事项,另附转换工具链接