Python作图——numpy库和matplotlib库

2023-10-26

一、numpy库

1.1概述

numpy是一个存储和处理多维数组、矩阵等的库,提供多种关于数组运算的数学函数,可供直接调用。

1.1.1数据类型

numpy的数据类型包括整型、浮点型、复数型、布尔型等。

#在IDLE查询numpy支持的数据类型
from numpy import *
sctypeDict.keys()

1.1.2ndarry对象

ndarry数组必须存放相同类型的元素,且每个元素在内存中都具有相同的存储大小。

与python标准类中一维数组list比较,ndarry对象有N个维度,占用内存空间小,运行速度快

ndarry属性
.T 转置矩阵
.ndim 数组维数
.shape 数组的维度,属性是行数和列数
.size 数组元素的总数
.dtype 数组元素的类型
.itemsize 数组中每个元素的字节大小

1.2安装

1)运行“cmd”命令,进入命令窗口;

2)使用“pip”命令进行安装,在命令窗口输入“pip install numpy”。

1.3应用

1.3.1创建数组

1 array

2arange

#格式
arange([start,]stop[,step,],dtype=None)
a2=np.arange(1,10,2)      #创建1~10的奇数数组
a2
array([1, 3, 5, 7, 9])    #运行结果

3zeros(创建全0数组)、ones(创建全1数组)

4logspace(创建等比数列)

5eye(创建对角线全1数组)

6diag(创建可自定义对角线值的数组)

实例

1.3.2数组处理

1切片(与列表类似,其实位置是0~n的索引)

2字符串

#格式
numpy.char.function()

3运算

 以下为简单运算实例

 

4排序和筛选

二、matplotlib库

2.1概述

matplotlib是一个python二维绘图库,以各种硬复制格式和跨平台的交互环境生成出版物质量图。

仅需几行代码即可生成柱状图、功率谱、条形图、误差图、散点图等。

2.2安装

1)运行“cmd”命令,进入命令窗口;

2)使用“pip”命令进行安装,在命令窗口输入“pip install matplotlib”。

2.3Matplotlib库

matplotlib库中的所有内容都是层次组织;层次结构顶部是matplotlib.pyplot模块提供的matplotlib状态机环境,在这个级别上可以用简单的函数将线、图像、文本等绘图元素添加到当前轴。

pyplot是命令样式函数的集合,可以使matplotlib库像Matlab一样工作。每个pyplot函数可以对图像进行一些更改,如创建图形、在图形中创建绘图区域、在绘图区域绘制一些线、用标签装饰绘图等。

2.4Matplotlib.pyplot的常见函数

常用的基本绘图函数

基本绘图函数
函数 描述
annotate(s, xy, \*args, \*\*kwargs) 用文本s注释xy
axis(\*args, \*\*kwargs) 获取或设置某些轴属性的方便方法
bar(x, height[, width, bottom, align, data]) 绘制条形图
barh(y, width[, height, left, align]) 绘制水平条形图
figure([num, figsize,dpi, facecolor, …]) 创建新图形
hist(x[,bins, range, density, weights, …]) 绘制柱状图
legend(\*args, \*\kwargs) 在轴上放置图例
pie(x[explode, labels, colors, autopct, …]) 绘制饼图
plot(\*args[, scalex, scaley, data]) 绘制y和x作为直线和/或标记
scatter(x, y[, s, c, marker, cmap, norm, …]) 标记大小和/或颜色不同的y与x散点图
show(\*args, \*\*kw) 显示数字
stackplot(x, \*args[, labels, colors, …]) 绘制堆积面积图
subplots([nrow, ncols, sharex, sharey,…]) 绘制一个图形和一个子图
text(x, y, s[, fontdict, withdash]) 将文本添加到轴
title(label[, fontdict, loc, pad]) 为轴设置标题
xlabel(xlabel[, fontdict, labelpad]) 设置x轴的标签
xticks([ticks, labels]) 获取或设置x轴当前刻度位置和标签
ylabel(ylabel[, fontdict, labelpad]) 设置y轴的标签

三、应用举例

3.1条形图

#格式
bar(x, height[, width, bottom, align, data])
#x:比例尺序列
#height:标量或标量序列
#width:宽度,可选项
#bottom:底部,可选项
#align:对齐,可选项
#绘制条形图
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
#设置中文字体,不设置此项,中文不能正确显示
matplotlib.rcParams["font.family"] = "STSong"
matplotlib.rcParams["font.size"] = 12
#定义数组
x = np.arange(1,7)
str1 = ["1月","2月","3月","4月","5月","6月"]
y1 = [126, 143, 120, 114, 118, 84]
y2 = [103, 115, 96, 89, 93, 70]

#加入条形
#条形图bar(x, height[, width, bottom, align, data])
plt.bar(x, y1, 0.3, label="收入", tick_label=str1)
plt.bar(x+0.3, y2, 0.3, label="成本")

#为条形图加上y轴的数值
for a, b in zip(x, y1):
    plt.text(a, b+0.03, "%.0f" %b, ha="center", va="bottom", fontsize=10)
for a, b in zip(x, y2):
    plt.text(a+0.3, b, "%.0f" %b, ha="center", va="bottom", fontsize=10)

plt.title("月销售情况表(万元)")    #设置图表标题
plt.xlabel("月份")                   #设置x轴标签
plt.ylabel("金额")                   #设置y轴标签
plt.legend()                         #显示标签
plt.show()                           #显示图标

3.2饼状图

#绘制饼图
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams["font.family"] = "STSong"
matplotlib.rcParams["font.size"] = 12

label = "16岁及以下","17-25岁","26-35岁","36-45岁","46-55岁","56岁以上"
size = [10,16,22,20,24,8]    #占比,和为100
color = ["LightSalmon","LightSkyBlue","LightYellow",
         "CornflowerBlue","MediumVioletRed","DarkViolet"]
explode = (0.1,0.1,0,0,0,0)    #设置25岁以下两个扇形的间距为0.1
plt.pie(size,labels=label, explode=explode, colors=color,
        autopct="%1.1f%%", shadow=True,startangle=90)
plt.title("某城市人口年龄结构图")
plt.legend(loc=5,fontsize=8,bbox_to_anchor=(1.2,0.9),
           borderaxespad=0.1)
plt.show()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python作图——numpy库和matplotlib库 的相关文章

  • Django Rest Framework 嵌套序列化器不显示相关数据

    我使用 Django Rest Framework 进行了基本设置 我有两个模型和一个嵌套序列化器设置 models py from django db import models class Plan models Model name
  • 用顶点之间的渐变填充 matplotlib 多边形

    我正在使用 matplotlib 的 Poly3DCollection 绘制多边形 三角形 的集合 三角形位于具有与其关联的颜色的顶点之间 我目前正在用通过平均三个顶点的颜色确定的纯色填充每个三角形 绘制三角形以形成 3D 表面网格 I w
  • 在 Django 中处理 subprocess.call()

    我正在开发的应用程序的简单想法是用户给出 Linux 命令 Linux 命令的结果将显示在网络浏览器中 这是我的观点 py from django shortcuts import render to response from djang
  • 查找其他列表项中列表项的列表索引

    我有一个长字符串列表 我想获取与另一个列表中的字符串子字符串匹配的列表元素的索引 使用列表理解可以轻松检查列表项是否包含列表中的单个字符串 例如这个问题 https stackoverflow com questions 4843158 c
  • 使用 numba 计算向量和矩阵中的行之间的余弦相似度

    找到了这个gist https gist github com FedericoV 0e7d6d8c8794a99a7a42使用 numba 快速计算余弦相似度 import numba numba jit target cpu nopyt
  • Python中基于行输入的条件求和

    我正在尝试用Python 做一个条件和积 简化的思路如下 A 1 1 2 3 3 3 B 0 50 0 25 0 99 0 80 0 70 0 20 我想要作为输出 Total1 0 50 1 0 25 1 Total2 0 99 2 To
  • 枚举列表中的列表

    我有一个约会 并记录了那天发生的事件 我想枚举显示日历的日期的事件列表 我还需要能够从列表中删除事件 def command add date event calendar if date not in calendar calendar
  • 如何加载 caffe 模型并转换为 numpy 数组?

    我有一个 caffemodel 文件 其中包含 ethereon 的 caffe tensorflow 转换实用程序不支持的层 我想生成我的咖啡模型的 numpy 表示 我的问题是 如何将 caffemodel 文件 我还有 prototx
  • 如何更新 certifi 的根证书?

    我正在使用 certifi python 模块来验证 ssl 连接 我查看了 certifi python2 7 site packages certifi cacert pem 中包含的根证书 其中一些证书已过期 我如何更新这些证书 我尝
  • python中根据变量类型处理数据子集

    我将以下数据存储在 csv df sample csv 中 我将列名放在名为 cols list 的列表中 df 数据 样本 df data sample pd DataFrame new video BASE SHIVER PREFER
  • 利用“写入时复制”将数据复制到 Multiprocessing.Pool() 工作进程

    我有一点multiprocessingPython 代码看起来有点像这样 import time from multiprocessing import Pool import numpy as np class MyClass objec
  • 如何在关心 NaN 值的同时获取数据框中值的百分比变化?

    我有以下数据框 Date A 2015 01 01 10 2015 01 02 14 2015 01 05 NaN 2015 01 06 NaN 2015 01 07 5 2015 01 10 1 2015 01 11 NaN 2015 0
  • pytube 在 Android 中传输视频所需的时间太长

    我在用pytube在 Android 中流式传输视频 借助chaquopy 视频文件 py from pytube import YouTube def video link yt YouTube f https www youtube c
  • 带有多表查询的 SQL Join 版本的 Djangoviews.py

    需要一些有关 Django 版本的 SQL 多表查询的帮助 该查询使用 3 个表来检索餐厅名称 地址Restaurants table和美食类型来自Cuisinetypes table 所有这些都基于通过 URL 传递的菜品名称 菜品 ID
  • 如何使用 Pandas 在现有 Excel 文件中保存新工作表?

    我想使用excel文件来存储用python详细说明的数据 我的问题是我无法将工作表添加到现有的 Excel 文件中 在这里 我建议使用示例代码来解决此问题 import pandas as pd import numpy as np pat
  • AIORedis 和 PUB/SUB 不是 asnyc

    I used aioredis http aioredis readthedocs org en latest examples html用于编写异步服务 该服务将侦听某个通道并以异步方式运行一些命令 基本上我从示例页面 http aior
  • 导入后属性未添加到模块中

    我做了以下实验室 vagrant ubuntu xenial test tree pack1 init py mod1 py pack2 init py mod2 py mod3 py test py 2 directories 6 fil
  • App Engine、PIL 和叠加文本

    我正在尝试在 GAE 上的图像上覆盖一些文本 现在他们公开了 PIL 库 这应该不是问题 这就是我所拥有的 它有效 但我不禁认为我应该直接写入背景图像 而不是创建单独的覆盖图像然后合并 我可以用吗Image frombuffer http
  • 字典条目被覆盖? [复制]

    这个问题在这里已经有答案了 我发现一些输入没有存储在 Python 3 的字典中 运行这段代码 N int input How many lines of subsequent input graph for n in range N st
  • Python TDD 目录结构

    Python 中是否有用于 TDD 的特定目录结构 教程讨论测试的内容 但不讨论测试的位置 通过研究 Python Koans 怀疑它是这样的 project main program py This has main method sta

随机推荐

  • 一文带你聊聊MYSQL的锁和MVCC

    如果你觉得内容对你有帮助的话 不如给个赞 鼓励一下更新 本文内容总结自极客时间 MySQL实战45讲 专栏 LBCC 单版本控制 锁 基于锁的并发控制 这种方案比较简单粗暴 就是一个事务去读取一条数据的时候 就上锁 不允许其他事务来操作 当
  • 【Python自动化】生成带装饰图形的渐变背景文字封面

    Python自动化专栏 利用文字生成固定比例且带有装饰图形的封面 文章目录 一 背景介绍 二 功能介绍 效果预览 功能清单 三 过程拆解 1 渐变背景层 2 装饰图形层 3 半透明遮罩层 4 文字层 四 完整代码 参考文档 一 背景介绍 在
  • echarts地图map下钻到镇街、KMZ文件转GeoJson、合成自定义区域

    echarts 地图map下钻到镇街 KMZ文件转GeoJson 合成自定义区域 我们可以通过 http datav aliyun com tools atlas 阿里旗下的高德地图提供的api 可以获取到中国各个省份 区级 县级的json
  • NAT技术的主要实现方式及其对网络应用程序的使用影响

    网络地址转换 NAT 是接入广域网 WLAN 的一种技术 能够将私有 保留 地址转化为合法的IP地址 它被广泛应用于各种类型Internet接入方式和各种类型的网络中 NAT的实现方式有三种 静态转换 动态转换和端口多路复用 静态转换设置起
  • Linux审计与日志安全加固

    审计和日志服务配置 auditctl 审计数据配置 日志文件最大参数 在储存策略 etc audit audit conf 中配置max log file
  • 高德地图精确查找与定位RegeocodeQuery与GeocodeQuery

    根据输入的字符串精确查找位置 用GeocodeQuery查找坐标 然后根据获取到的坐标 用RegeocodeQuery查询地址 例子中用了两个页面 一个是显示地址信息及定位的页面 另一个是搜索页面 点击搜索结果返回显示页面 显示信息并定位
  • iOS经典面试题总结--内存管理

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 我根据自己的情况做了一下总结 答案是我总结的 如有答的不好的地方 希望批评指正以及交流 谢谢 内存管理 1 什么是ARC ARC是automatic reference c
  • 【darknet】2、yolov4模型训练之模型训练

    文章目录 1 进行模型训练数据准备 1 1 划分训练和验证集 1 2 将数据标注格式转换为YOLO格式 2 修改配置文件 2 1 新建cfg vechle names 2 2 新建cfg vechle data 2 3 根据所选模型的不同
  • java连接数据库的Connection中的prepareStatement与createStatement的区别

    这两者的区别主要在于如何构造执行sql语句的对象 1 对于prepareStatement来说 其执行返回的是一个prepareStatement对象 而这个方法的描述是这样的 prepareStatement String sql 创建一
  • 在mac上安装gradle(超详细,直接按步骤操作即可轻松搞定)

    在mac上安装gradle 超详细 直接按步骤操作即可轻松搞定 第一步 就是先download最新版本的gradle 网址如下 http gradle org gradle download 然后将下载下来的zip包放解压到本地任意的路径上
  • input 标签里 value值从数据库读取出来的值显示一半或者没显示原因

    存进数据库的字符如下 读取数据出来显示如下 毒 这家超市被星巴克称为 价格警察 这段话没显示出来 原因 这样出来的是value 比海底捞服务更 毒 这家超市被星巴克称为 价格警察 input value值中的双引号被作为value值的结束符
  • 求二元函数最大值matlab,利用matlab, 二元函数求最大值

    求二元函数 z 0 2323 x 2 0 2866 2 2 0 5406 a0 2 1 0203 a0 2 x 2 x 2 y 2 0 5 tanh 2 x 2 y 2 0 5 x 2 0 5733 u0 2 的最大值 变量x和y都是在0
  • React -css in js框架style-components

    原文 https www jianshu com p 27788be90605 前言 前端飞一般的发展中 衍生出各式各样的框架 框架的目的是减轻开发人员的开发难度 提高效率 以前网页开发的原则是关注点分离 意思是各种技术只负责自己的领域 不
  • 【偷偷卷死小伙伴Pytorch20天-day16-损失函数】

    最近这几天忙着开学返校的事情 终于几番周折回到了学校 继续pytorch的学习打卡 一般来说 监督学习的目标函数由损失函数和正则化项组成 Objective Loss Regularization Pytorch中的损失函数一般在训练模型时
  • 服务器 文件类型,linux服务器支持的文件类型

    linux服务器支持的文件类型 内容精选 换一换 弹性云服务器卸载磁盘 弹性云服务器状态为stopped时支持系统盘 也就是 dev sda挂载点 和用户盘的卸载 没有操作系统限制 也不需要在弹性云服务器内部安装vmtools 弹性云服务器
  • 【深度解析→博文总结】李宏毅机器学习2023作业01Regression(COVID-19 Cases Prediction)

    文章目录 系列文章 简要说明 视频分享 作业详情 调参记录 Simple Baseline 1 96993 Medium Baseline 1 15678 Strong Baseline 0 92619 Boss Baseline 0 81
  • Seata1.2.0配置及分布式事务失效解决

    配置 版本说明 springCloud Alibaba组件版本关系 我用的是 cloud Alibaba 2 2 1 RELEASE springboot 2 2 5 RELEASE nacos 1 2 1 seata1 2 0 1 配置数
  • booth算法

    booth算法 1 booth算法定义 2 二进制乘法过程 3 二进制乘法转换成 booth乘法运算 4 Radix 2 Booth乘法器 5 Radix 4 Booth乘法器 6 Booth乘法器计算实例 1 booth算法定义 将乘数看
  • 【CV】图像分类中的细粒度/粗粒度怎么理解

    粗粒度图像分类 类别之间差异大 比如人 汽车 树 细粒度图像分类 类别之间差异小 比如200种鸟的分类 100种花的分类 由于细粒度类别属于同一个大类 所以各类别之间的差距很小 这些细微的差距容易被光照 颜色 背景 形状和位置等变化因素覆盖
  • Python作图——numpy库和matplotlib库

    一 numpy库 1 1概述 numpy是一个存储和处理多维数组 矩阵等的库 提供多种关于数组运算的数学函数 可供直接调用 1 1 1数据类型 numpy的数据类型包括整型 浮点型 复数型 布尔型等 在IDLE查询numpy支持的数据类型