【Python学习笔记】Matplotlib画图

news2025/1/11 20:03:17

Matplotlib画图

  • 一、基本函数
    • 1. plt.plot
    • 2. plt.text
    • 3. 设置刻度
    • 4. 设置坐标
    • 5.设置网格
  • 二、绘制折线图
  • 三、绘制散点图
  • 四、绘制柱状图
  • 五、绘制双坐标图

一、基本函数

1. plt.plot

参数功能选项
color改变折线颜色‘r’,‘g’,‘b’,‘black’,‘gray’
marker改变数据点的形状‘.’: 小圆点;‘,’: 像素点;‘o’: 实心圆;‘v’: 垂直三角形;‘^’: 正三角形;‘<’: 左三角形;‘>’: 右三角形;‘1’: 向下平行竖线;‘2’: 向上平行竖线;‘3’: 向左平行横线;‘4’: ;右平行横线;‘s’: 正方形;‘p’: 五边形;‘*’: 星号;‘h’: 六边形1;‘H’: 六边形2;‘+’: 加号;‘x’: X号;‘d’: 小菱形;‘D’: 大菱形;’
markerfacecolor改变数据点的填充色
markeredgecolor改变数据点的边缘色
markersize改变数据点的大小从0到无穷大的浮点数
linestyle改变折线样式‘-’: 实线 ;‘–’: 虚线;‘-.’: 点划线;‘:’: 点线;‘’: 无线条,只显示标记;‘None’: 无线条,不显示标记;’ ': 无线条,不显示标记
linewidth改变折线宽度从0到无穷大的浮点数
label绘制的线条的标签字符串类型
alpha线条和标记的透明度从0到1的浮点数
aa是否开启抗锯齿Ture;False

2. plt.text

参数功能选项
s标签的符号字符串
fontsize标签字体大小整数
verticalalignment垂直对齐方式center,top,bottom,baseline
horizontalalignment水平对齐方式center, right,left
rotation标签的旋转角度以逆时针计算,取整
style设置字体的风格
weight设置字体的粗细
string注释文本内容
color注释文本内容的字体颜色
bbox给字体添加框bbox=dict(facecolor=‘red’, alpha=0.5) 等

3. 设置刻度

# 网格样式线型,网格颜色,网格透明度
plt.xticks(np.linspace(0,epochs,11), size = 16, weight=1000)
# 不设置
plt.xticks([])
# 第二次修改刻度
import matplotlib.pyplot as plt

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
sales = [12000, 15000, 18000, 14000, 16000, 20000, 23000, 21000, 19000, 22000, 25000, 28000]

plt.bar(months, sales)
plt.xticks([2, 5, 8, 11], ['Q1', 'Q2', 'Q3', 'Q4'])
plt.xlabel('Month')
plt.ylabel('Sales')
plt.title('Sales by Quarter')
plt.show()
# y轴改为对数坐标
plt.yscale("log")
plt.yticks([0.0001, 0.001, 0.01, 0.1, 1, 10])

4. 设置坐标

plt.xlabel("x",fontdict={'weight' : 1000,'size' : 16})
plt.ylabel("y",fontdict={'weight' : 'normal','size' : 16})

5.设置网格

# 网格样式线型,网格颜色,网格透明度
plt.grid(ls=":",color="gray",alpha=0.5)

二、绘制折线图

import matplotlib.pyplot as plt
import numpy as np

# fig = plt.figure(figsize=(20,20), dpi=1024)

x1 = np.array([1, 2, 3, 4])
y1 = np.array([1, 1.5, 2, 2.5])
x2 = x1
y2 = y1 * 1.5

plt.plot(x1, y1, '-', marker='o', color='b', linewidth=1, markersize=2, label='A')
plt.plot(x2, y2, '--', marker='^', color='orange',linewidth=1, markersize=2, label='B')

for a, b in zip(x1, y1):
    plt.text(a, b, (a,b), ha='center', va='bottom', color='b')
for a, b in zip(x2, y2):
    plt.text(a, b, (a,b), ha='center', va='bottom', color='orange')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(1,4)
plt.legend()
plt.title('result')
# plt.savefig(f'./result.png', dpi=1024)
plt.show()

在这里插入图片描述

三、绘制散点图

# 其他的参数参考折线图
import matplotlib.pyplot as plt

# x坐标和y坐标的数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 绘制散点图
plt.scatter(x, y)

# 在每个点上显示相应的值
for i in range(len(x)):
    plt.text(x[i], y[i], f'({x[i]}, {y[i]})', ha='center', va='bottom')

# 添加标题和坐标轴标签
plt.title('Scatter Plot with Values')
plt.xlabel('X')
plt.ylabel('Y')

# 展示图形
plt.show()

在这里插入图片描述

四、绘制柱状图

import matplotlib.pyplot as plt

# x轴标签和对应的数值
labels = ['A', 'B', 'C', 'D', 'E']
values = [10, 20, 15, 25, 30]

# 绘制柱状图
plt.bar(labels, values)

# 在每个柱子上显示相应的值
for i in range(len(labels)):
    plt.text(labels[i], values[i] + 1, str(values[i]), ha='center')

# 添加标题和坐标轴标签
plt.title('Bar Chart with Values')
plt.xlabel('X')
plt.ylabel('Y')

# 展示图形
plt.show()

在这里插入图片描述

五、绘制双坐标图

import matplotlib.pyplot as plt

# x轴数据
x = [1, 2, 3, 4, 5]

# 第一个y轴的数据
y1 = [10, 20, 30, 40, 50]

# 第二个y轴的数据
y2 = [1, 4, 9, 16, 25]

# 创建第一个y轴(左侧轴)
fig, ax1 = plt.subplots()

# 绘制第一个y轴的线形图
line1 = ax1.plot(x, y1, 'g-', label='Y1')
ax1.set_xlabel('X')
ax1.set_ylabel('Y1', color='g')

# 创建第二个y轴(右侧轴)
ax2 = ax1.twinx()

# 绘制第二个y轴的散点图
scatter = ax2.scatter(x, y2, c='r', marker='o', label='Y2')
ax2.set_ylabel('Y2', color='r')

# 在散点图上显示每个数据点的值
for i in range(len(x)):
    ax2.text(x[i], y2[i]+1, str(y2[i]), ha='center', va='bottom')

# 调整图例
handles1, labels1 = ax1.get_legend_handles_labels()
handles2, labels2 = ax2.get_legend_handles_labels()
plt.legend(handles1 + handles2, labels1 + labels2)

# 添加标题
plt.title('Double Axis Plot with Values')

# 展示图形
plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/847992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

固态硬盘 vs 机械硬盘:选择合适的存储方案

随着计算机的快速发展&#xff0c;各种硬件组件如CPU、显卡以及制作工艺都取得了长足的进步&#xff0c;但是磁盘的发展相对较为缓慢&#xff0c;这也导致了磁盘性能在一定程度上限制了计算机的整体性能。为了解决这个问题&#xff0c;固态硬盘应运而生。 那么&#xff0c;我们…

(亲测)制作linux启动U盘

下载软碟通 https://cn.ultraiso.net/xiazai.html 点击文件中的打开&#xff0c;选中Linux系统 插入U盘&#xff0c;点击启动中的写入硬盘映像 点击之后会自动选中U盘。界面如下&#xff1a; 点击写入&#xff0c;点击后U盘会格式化&#xff0c;所以U盘里面有重要东西的话…

中国金融四十人论坛:2023年第二季度宏观政策报告(附下载)

关于报告的所有内容&#xff0c;公众【营销人星球】获取下载查看 核心观点 • 运行环境&#xff1a;外部环境方面&#xff0c;全球经济景气回落&#xff0c;会酸交作仍在收秀。内部环演方百&#xff0c;公共支出进一步旅爱&#xff0c;真交利本显考上开&#xff0c;社酸塔这创…

neo4j终端操作

1】进入容器 (base) xiaokkkxiaokkkdeMacBook-Pro ~ % docker exec -it 77ed5fe2b52e /bin/bash 2】启动、停止neo4j root77ed5fe2b52e:/var/lib/neo4j/bin# ./neo4j start Neo4j is already running (pid:7). Run with --verbose for a more detailed error message.root7…

项目实战 — 消息队列(6){内存数据管理}

目录 一、设计数据结构 二 、实现管理方法 &#x1f345; 1、实现交换机管理 &#x1f345; 2、实现队列管理 &#x1f345; 3、实现绑定管理 &#x1f388;插入绑定操作 &#x1f388;删除绑定 &#x1f345; 4、进行消息管理 &#x1f345; 5、发送消息到指定队列 &a…

英文音频转文字app让音频秒变文字

小明是一名大学生&#xff0c;他在上大学的时候经常需要通过听老师讲课来获取知识。但是&#xff0c;他发现自己很难在听课的同时完整地记录下老师所讲的内容。于是&#xff0c;他开始寻找音频转文字手机软件有哪些。经过一段时间的探索&#xff0c;他找到了三款不错的软件&…

我开源的 c#+wpf 模仿网易云音乐播放器

MusicApp 介绍 gitee地址&#xff1a;https://gitee.com/liu_guo_feng/music-app 我开源的 c#wpf 模仿网易云音乐播放器 项目页面功能完成列表 首页(待完善) 每日推荐音乐 歌单详情 带播放列表 歌词页(待完善) 换肤功能(待完善) 系统托盘 … 预览 仅供学习使用 不作任何商业用…

查看单元测试用例覆盖率新姿势:IDEA 集成 JaCoCo

1、什么是 IDEA IDEA 全称 IntelliJ IDEA&#xff0c;是 Java 编程语言开发的集成环境。IntelliJ 在业界被公认为最好的 Java 开发工具&#xff0c;尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具(git、SVN 等)、JUnit、CVS 整合、代码分析、 创新的 GUI…

Python入门自学进阶-Web框架——39、redis、rabbitmq、git——2

RabbitMQ的exchange&#xff0c;即交换机有不同的类型&#xff1a; 1.direct Exchange(直接交换机) 匹配路由键&#xff0c;只有完全匹配消息才会被转发 2.Fanout Excange&#xff08;扇出交换机&#xff09; 将消息发送至所有的队列 3.Topic Exchange(主题交换机) 将路由按模…

【机器学习 | 决策树】利用数据的潜力:用决策树解锁洞察力

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

山东气象 × 和鲸科技:第一届齐鲁风云气象智能算法挑战赛圆满收官

7 月 20 日&#xff0c;中国气象局印发《人工智能气象应用工作方案&#xff08;2023 - 2030年&#xff09;》&#xff0c;旨在加快布局国产人工智能气象应用技术体系建设&#xff0c;推动人工智能技术在气象观测、预报及服务中的深度融合应用&#xff0c;为监测精密、预报精准、…

网络安全 Day30-运维安全项目-堡垒机部署

运维安全项目-堡垒机部署 1. 运维安全项目-架构概述2. 运维安全项目之堡垒机2.1 堡垒机概述2.2 堡垒机选型2.3 环境准备2.4 部署Teleport堡垒机2.4.1 下载与部署2.4.2 启动2.4.3 浏览器访问teleport2.4.4 进行配置2.4.5 安装teleport客户端 2.5 teleport连接服务器 1. 运维安全…

【Windows】Windows开机密码重置

文章目录 前言一、问题描述二、操作步骤2.1 安装DaBaiCai_d14_v6.0_2207_Online.exe2.2 插入U盘2.3 打开大白菜&#xff0c;点击“一键制作USB启动盘”2.4 等待进度条走完2.5 重启电脑&#xff0c;开机按“F12”或者“F8”&#xff08;具体百度一下&#xff0c;对应品牌电脑开机…

DEVICENET转ETHERCAT网关连接西门子支持ethercat吗

你有没有遇到过生产管理系统中&#xff0c;设备之间的通讯问题&#xff1f;两个不同协议的设备进行通讯&#xff0c;是不是很麻烦&#xff1f;今天&#xff0c;我们为大家介绍一款神奇的产品&#xff0c;能够将不同协议的设备进行连接&#xff0c;让现场的数据交换不再困扰&…

Appium 移动端自动化测试 -- 常用元素操作

点击元素&#xff08;element&#xff09; element.click() 输入内容 element.send_keys(‘input_string’) 清空输入框内容 element.clear() 获取元素属性 element.get_property("text_length")element.get_attribute("class") 获取元素的text文本…

MySQL 慢查询探究分析

目录 背景&#xff1a; mysql 整体结构&#xff1a; SQL查询语句执行过程是怎样的&#xff1a; 知道了mysql的整体架构&#xff0c;那么一条查询语句是怎么被执行的呢&#xff1a; 什么是索引&#xff1a; 建立索引越多越好吗&#xff1a;   如何发现慢查询&#xff1…

Appium Android 自动化测试 -- 元素定位

自动化测试元素定位是难点之一&#xff0c;编写脚本时会经常卡在元素定位这里&#xff0c;有时一个元素能捣鼓一天&#xff0c;到最后还是定位不到。 Appium 定位方式和 selenium 一脉相承&#xff0c;selenium 中的定位方式Appium 中都支持&#xff0c;而 Appium 还增加了自己…

每天一道leetcode:剑指 Offer 32 - III. 从上到下打印二叉树 III(中等广度优先遍历)

今日份题目&#xff1a; 请实现一个函数按照之字形顺序打印二叉树&#xff0c;即第一行按照从左到右的顺序打印&#xff0c;第二层按照从右到左的顺序打印&#xff0c;第三行再按照从左到右的顺序打印&#xff0c;其他行以此类推。 示例 给定二叉树: [3,9,20,null,null,15,7…

pytorch Stream 多流处理

CUD Stream https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c-language-extensions 中指出在kenel的调用函数中最后一个可选参数表示该核函数处在哪个流之中。 - 参数Dg用于定义整个grid的维度和尺寸&#xff0c;即一个grid有多少个block。为dim3类型。…

电脑开不了机如何解锁BitLocker硬盘锁

事情从这里说起&#xff0c;不想看直接跳过 早上闲着无聊&#xff0c;闲着没事干&#xff0c;将win11的用户名称改成了含有中文字符的用户名&#xff0c;然后恐怖的事情发生了&#xff0c;蓝屏了… 然后就是蓝屏收集错误信息&#xff0c;重启&#xff0c;蓝屏收集错误信息&…