Matplotlib 基本操作及基本案例

Python--数据可视化进阶(matplotlib) 1. 图形窗口方法与参数 1.1 创建窗口 1.2 设置窗口的常用方法 1.3 更改当前绘制的窗口 2. 子图布局(一个窗口显示多个图表) 2.1 矩阵式布局 2.2 网格式布局 2.3 自由式布局 3. 刻度定位器 3.1 MultipleLocator() 3.1 其...... 阅读详情

Matplotlib 教程

(一)Matplotlib详解

  • 在matplotlib中整个图像为一个Figure对象,可包括一个或者多个Axes对象 每个Axes(ax) 对象都是一个绘图拥有自己坐标系统的绘图区域
  • Axis(line):是横坐标
  • Axis Label(text):横坐标姓名的标签
  • Tick Label(text):设置横坐标的值
  • Title(text):图名
  • Tick(text):同理,是纵坐标的
  • 各个对象包含关系fig(ax(xaxis(tick(tick label),label),yaxis(tick(tick label),label),title,data))

title为图像标题,Axis为坐标轴, Label为坐标轴标注,Tick为刻度线,Tick Label为刻度注释

常见绘图库如下:

  • matplotlib
  • Seaborn
  • Bokeh: 交互式数据可视化
  • Logistics Regression:分类预测和逻辑回归

(二)常用绘图类型

(1)折线图:plt()
(2)柱状图:plt.bar(x,y)
(3)散点图:plt.scatter(x,y)
(4)饼图:plt.pie(x)
(5)直方图:plt.hist(x,y)
(6)子图:plt.subplot(x,y,z)

(三)基本函数解释

(1)figure

  • figure:matplotlib创建的图都在figure对象中,创建figure对象,plt.figure()

(2)Subplot:绘制子图

  • fig.add_subplot(a,b,c):a,b代表将fig分割成a x b的区域,c代表当前选中要操作的区域,注意从1开始。

(3)自定义x轴刻度 :在matplotlib.ticker里的MultipleLocator,FormatStrFormatter里

  • 导入包:
%python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator,FormatStrFormatter
  • 数字格式:
%python
x = np.arange(30) #x取值
y = np.arange(30) #y取值
plt.figure(figsize=(5,3))
plt.plot(x,y)
#设置x刻度间隔
plt.gca().xaxis.set_major_locator(MultipleLocator(3))
#设置x轴的刻度显示格式
plt.gca().xaxis.set_major_formatter(FormatStrFormatter('%d-N'))
#自动旋转x刻度适应坐标轴
plt.gcf().autofmt_xdate()
plt.title('Set_x_Format')
plt.show()

这里写图片描述

  • 时间格式
%python
import numpy as np
import datetime
from matplotlib.dates import DayLocator,DateFormatter
x = [datetime.date.today() + datetime.timedelta(i) for i in range(30)]
y = np.sin(np.arange(30))
plt.plot(x,y)
#设置x轴的时间间隔有,MinuteLocator,HourLocator,DayLocator,WeekLocator,MonthLocator,YearLocator
plt.gca().xaxis.set_major_locator(DayLocator(interval=3))
plt.gca().xaxis.set_major_formatter(DateFormatter('%y/%m/%d'))
plt.gcf().autofmt_xdate()
plt.show()

这里写图片描述

(4)绘制柱状图

%python
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(5) #x产生5组
y1,y2 = np.random.randint(1,25,size=(2,5)) #y1,y2随机产生
width = 0.5 #代表柱状图的宽度 
ax = plt.subplot(1,1,1)
ax.bar(x,y1,width,color='r')   #bar 是绘制柱状图
ax.bar(x+width,y2,width,color='g') #设置x轴,y轴,宽度,颜色
ax.set_xticks(x+width)
# ax.set_xticklabels(['a','b','c','d','e']) #自定义x的刻度标签的内容
plt.show()                   

width=0.5,没有设置x的刻度标签
这里写图片描述
width=0.25,设置x的刻度标签
这里写图片描述

(5)矩阵绘图

%python
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
m = np.random.rand(10,10) #随机产生10x10的二维数组
# print(m)
plt.imshow(m,interpolation='nearest',cmap=plt.cm.ocean)
plt.colorbar()
plt.show()

这里写图片描述

(6)plt.subplots()

%python
fig ,subplot_arr = plt.subplots(2,2)
subplot_arr[0,0].hist(np.random.randn(100),bins=10,color='b',alpha=0.3)
plt.show()

这里写图片描述

(7)常用颜色

    * b:blue
    * g:green
    * r:red
    * c:cyan
    * m:magenta
    * y:yellow
    * k:black
    * w:white

(8)x,y的刻度和标签及取值范围

  • 设置显示的刻度
    plt.xticks(),plt.yticks()
    ax.set_xticks(),ax.set_yticks()
  • 设置刻度标签
    ax.set_xticklabels(),ax.set_yticklabels()
  • 设置刻度范围
    plt.xlim(),plt.ylim()
    ax.set_xlim(),ax.set_ylime()
  • 设置坐标轴标签
    ax.set_xlabel(),ax.set_ylabel()

案例引入:统计美国死亡率(1968-2010)

按年龄

%python
import csv 
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (15,13))
plt.ylim(35,102)
plt.xlim(1965,2015)
labeldata =['Below 25','25-44','45-54','55-64','65-74','75-84','Over 85']
with open('mortality2.csv') as csvfile:
    mortdata = [row for row in csv.reader(csvfile)]
x = []
for row in mortdata:
    yrval = int(row[0])
    if(yrval == 1969):
        y = [[row[1]],[row[2]],[row[3]],[row[4]],[row[5]],[row[6]],[row[7]]]
    else:
        for col in range(0,7):
            y[col] += [row[col+1]]
    x += [yrval]
for col in range(0,7):
    if(col == 1):
        plt.plot(x,y[col],label=labeldata[col],linewidth=3.8)
    else:
        plt.plot(x,y[col],label=labeldata[col],linewidth=2)
plt.legend(loc=0,prop={'size':10})
plt.show()

按性别

%python
import csv
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,4)) #设置图像大小
plt.ylim(740,1128) #设置y轴的取值范围
plt.xlim(1968,2011) #设置x轴的取值范围
with open('mortality1.csv') as csvfile:
    mortdata=[row for row in csv.DictReader(csvfile)] #打开文件 DictReader() 是用字段名作为键,字段的值作为值
x = [] #x列表
males_y = [] #男性列表
females_y = [] #女性列表
every_y = [] #全部人
yrval = 1968 #起始的统计年份
for row in mortdata:
    x += [yrval] #将1968插入x列表
    males_y += [row['Males']] #将Males那列的第一个值放入males_y的列表中
    females_y += [row['Females']] #将Females那列放入females_y列表中
    every_y += [row['Everyone']] #同上
    yrval = yrval + 1   #起始年份+1

plt.plot(x,males_y)
plt.plot(x,females_y)
plt.plot(x,every_y)
plt.legend(loc=0,prop={'size':10})
plt.show()

致谢

[1]:《python数据可视化》科斯.拉曼 (著)程豪(译)
也有借鉴了别人的博客,忘记了网址。。。。

Python使用matplotlib函数subplot可视化多个不同颜色的折线图、使用set_major_locator函数指定坐标轴主刻度数值倍数(MultipleLocator) 阅读详情

相关推荐

【图像处理入门】2. Python中OpenCV与Matplotlib的图像操作指南

通过掌握这些基础操作,您将为后续的图像处理学习打下坚实基础。建议通过实际项目(如证件照背景替换、图像特效制作)加深理解。

专注:太空算力、AI infra、异构调度、大模型成本工程 1417

matplotlib 关于使用 MultipleLocator 自定义刻度间隔

使用matplotlib绘图时如果由于数据太多导致刻度过于密集,利用 MultipleLocator(定位器) 可以自定义刻度的间隔。如下所示: import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocator # x_values = list(range(0, 11)) # y_values = [x ** 2 for x in x_values] x_values = ['a', 'b', 'c', 'd'

探测??? 1万+

Opencv图像及视频基本操作

本篇博客详细介绍了图片和摄像头的基本操作,如窗口创建、读取图片、改变图片大小、显示图片、调用摄像头、录制视频等操作,并运用这些方法完成了一个综合案例!对于Opencv初学者非常友好!

weixin_63866037的博客 831

matplotlib 绘图常用方法总结

matplotlib绘图迅速上手,绘图基本构架掌握

hello! 7025

Quartus的Signal Tap II的使用技巧

Signal Tap II全称Signal Tap II Logic Analyzer,是第二代系统级调试工具,它集成在Quartus II软件中,可以捕获和显示实时信号,是一款功能强大、极具实用性的FPGA片上调试工具软件。传统的FPGA板级调试是由外接的逻辑分析仪连接到FPGA的控制引脚,将内部引号引出至引脚I/O上,接着进行板级调试。

qq_37624854的博客 5901

SRAM故障排查实战:如何用Nano Prober定位6T存储单元的异常点

本文详细介绍了在SRAM故障排查中,如何运用Nano Prober(纳米探针)技术精准定位6T存储单元的内部异常。面对传统方法难以发现的电性参数漂移(如晶体管阈值电压偏移)或微小物理缺陷,Nano Prober能直接对单个6T单元内的晶体管进行I-V特性测量,结合失效模式分析,有效解决读写错误等疑难问题,是芯片失效分析的关键工具。

v5w6x的博客 668

matplotlib绘图问题

20200813 - 引言 这里记录以下关于绘图过程中,使用matplotlib时遇到的一些问题。 风格控制 问题 1. 风格控制 文章[1]中列举了一些风格控制的方式,不过这部分我一直没关注过,一直都是使用的默认风格。 一次使用过程中,在修改风格之后,希望还原最开始的风格,可以使用下面的命令。 matplotlib.rcdefaults() 参考文章 [1]matplotlib–修改样式 ...

围城 1850

从BAM到bigWig:用UCSC工具链完成测序数据可视化的完整流程

本文详细介绍了从BAM文件到bigWig格式的基因组数据可视化完整流程,涵盖UCSC工具链配置、文件格式转换、参数优化及常见问题解决方案。通过实战指南帮助研究人员高效完成测序数据可视化,特别适合ChIP-seq和RNA-seq数据分析。

weixin_29309213的博客 708

数据处理和统计分析——12 Matplotlib绘图

数据可视化简介、Matplotlib 绘图

念头通达 752

华强北手表256G真相大揭秘:ADB命令实测内存与存储(附完整调试教程)

本文通过ADB命令实战揭秘华强北智能手表256G存储等硬件参数的真实性。文章提供了从开启调试模式到使用ADB命令查询系统属性、验证内存与存储容量的完整教程,帮助用户识别参数虚标,评估设备真实性能与潜在风险。

e3f4g5的博客 1234

信号处理中的滤波器的阶数和谐波的理解

最近在读paper的时候,遇到了一些以前遗忘的问题,先重新查找,记录在这里,以备不时之查看。 我相信一定有小伙伴跟我有过一样的疑惑,那就是我们在使用滤波器的时候,总是遇到滤波器的阶数这个概念参数,我们很多都是根据别的paper里的设置,设置自己的科研参数,其实并不是很理解其中的含义: 其实我们常用的阶数N的意思是: 滤波器的阶数,就是指过滤谐波的次数,一般来讲,同样的滤波器,其阶

Miracle.Zhao的博客 2万+

DataWhale-(数据可视化Matplotlib)-Task03(布局格式定方圆)-202201

datawhalechina/fantastic-matplotlib 第三回:布局格式定方圆 第三回:布局格式定方圆 import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 一、子图 1. 使用

sinat_36892485的博客 299

STM32入门教程:图像处理

然后,我们使用 STM32 的 DSP 模块中的 arm_mean_u8 函数计算原始图像的平均值,并将结果存储在 meanValue 变量中。然后,我们需要编写代码配置 STM32 的外部中断输入引脚,并在中断处理函数中读取 OV7670 摄像头模块输出的图像数据。然后,我们需要编写代码配置 STM32 的 USB OTG 接口,并在回调函数中读取 USB 摄像头输出的图像数据。一、图像采集 图像采集是图像处理的第一步,我们需要将外部图像源的数据导入到 STM32 中进行处理。

2401_85625565的博客 1616

python-可视化matplotlib和seaborn

1.echart可做出更精美的图片,matplotlib和seaborn可以对数据进行简单的可视化操作2.series或dateframe转化成array使用方法.values,在可视化过程中尽量用np数组的形式3.%matplotlib inline 图是嵌入在notebook里面的不是跳出来一个框的形式4.matplotlib.pyplot作图的子模块5.x = np.arange(0., 1...

cxlhuihui的博客 913

Arduino开发实例-EMG 肌肉信号传感器

在医学研究中,测量肌肉的活动、收缩和扩张非常重要。 EMG 肌肉传感器测量肌肉活动并产生信号以显示扩张和收缩量。 因此,输出取决于所选肌肉的活动量。 3 绿色、红色和黄色电极连接到模块,用于传输来自肌肉运动的电信号。

视觉与物联智能 1699

Vue+OpenLayers:解决中国境内OpenStreetMap地图加载问题

然而,在使用OpenLayers和Vue框架搭建地图应用时,很多中国开发者可能会遇到一个常见问题:OpenStreetMap(OSM)地图无法正常加载。为了解决这个问题,我们可以使用其他方式获取地图数据,比如使用国内的地图服务提供商。通过使用国内地图服务商提供的地图数据,我们可以解决OpenStreetMap地图加载问题。然后,我们创建一个OpenLayers地图对象,并指定地图图层的源为国内地图服务商提供的地图URL。属性,可以将地图的中心点和缩放级别调整到我们需要的位置。

CodeWhizZ的博客 8275

matplotlib0----01

import matplotlib.pyplot as plt plt.plot([0,2,4,6,8],[3,1,4,5,2]) plt.ylabel("grade") plt.axis([-1,10,0,6])#x轴 -1~10 y轴0~~6 # plt.savefig('test',dpi=600)#每个英寸中包含 600各像素点 默认PNG plt.show...

weixin_30401605的博客 96

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

65 个 Matplotlib 基本实用案例

Matplotlib 作为 Python 家族当中最为著名的画图工具,基本的操作还是要掌握的,下面列举65个Matplotlib 基本实用案例。 启用和检查交互模式 在 Matplotlib 中绘制折线图 绘制带有标签和图例的多条线的折线图 在 Matplotlib 中绘制带有标记的折线图 改变 Matplotlib 中绘制的图形的大小 在 Matplotlib 中设置轴限制 使用 Python Matplotlib 显示背景网格 使用 Python Matplotlib 将绘图保存到图像文件 将图例放在

weixin_42709563的博客 4865

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Matplotlib】常用基本操作

文章目录学习心得1.Matplotlib图像构成2. Matplotlib是Python中一个二维绘图包,能够非常简单的实现数据可视化。Matplotlib最早由John Hunter于2002年启动开发,其目的是为了构建一个Matlab式的绘图函数接口。下面详细介绍Matplotlib图像构成、Matplotlib图像基本绘图流程、中文字符显示、坐标轴字符刻度标注等基本绘图知识。 为了方便快速绘图,Matplotlib通过pyplot模块(import matplotlib.pyplo

发现问题,并解决问题,批判性思维 1780

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Matplotlib绘图基本操作

Matplotlib绘图基本操作声明绘制简易折线图子图操作条形图与散点图条形图散点图直方图和盒图 声明 本文涉及的代码基于python 3.6.5 numpy1.14.3 pandas 0.23.0 matplotlib 2.2.2。 matplotlib是python中常用的图表绘制工具;pandas是常用的数据处理工具,关于pandas的使用可以参考我的这篇文章:Pandas基本操作与常用接口...

MrLittleDog的博客 2469

Matplotlib介绍,基本操作,及美化

Matplotlib介绍,基本操作,及美化

a_piece_of_ppx的博客 1143

Matplotlib基本操作

Matplotlib基本操作 图形样式 默认样式 对样式进行设置 图形对象 画图操作 散点图绘制 填充图的绘制 柱状图的绘制 柱状等高图 热成像图 饼图 网格图 极坐标图绘制 Matplotlib基本操作 Matplotlib是Python数据可视化工具包,其下的子包pyplot提供了面向对象的画图程序接口,几乎所有的画图函数都和MATLAB类似,连参数都类似...

德尔塔菜鸟日记 1484

matplotlib基本操作

import matplotlib.pyplot as plt import numpy as np 写出两条线的方程,x是-3到3之间50个数的等差数列 x = np.linspace(-3, 3, 50) y1 = 2 * x + 1 y2 = x ** 2 定义一个figure下的所有操作都属于这个figure plt.figure() plt.plot(x, y1) 定义第二个fig...

chenjiale5的博客 297

python-matplotlib基本操作

注:注释是重点!建议粘贴自己运行。 matplotlib注:注释是重点!建议粘贴自己运行。matplotlib简介简单使用(基本操作)示例代码+详细注释对线标注示例代码+详细注释scatter方法 matplotlib简介 Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 简单使用(基本操作) 包括其基本的使用结构,配合numpy,加上基本使用方法。 示例代码+详细注释 # #开始 ''' # 基本结构为以下: import m

hh3167253066的博客 1111

Jupyter Notebook基本操作

Jupyter Notebook服务启动与停止 Jupyter Notebook常用快捷键 Matplotlib绘图

QimaoRyan的博客 4万+
上一篇: python库之pandas基本操作
下一篇: 数据分析之泰坦尼克号案例
snow5618
博客等级 码龄9年 141粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值