【Python学习笔记】Matplotlib画图

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()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

知网期刊《中阿科技论坛》简介及投稿须知

知网期刊《中阿科技论坛》简介及投稿须知 主管单位&#xff1a;宁夏回族自治区科学技术厅 主办单位&#xff1a;宁夏回族自治区对外科技交流中心(中国一阿拉伯国家技术转移中心) 刊  期&#xff1a;月刊 国际刊号&#xff1a;ISSN 2096-7268 国内刊号&#xff1a;CN 64-…

Leetcode-每日一题【剑指 Offer 12. 矩阵中的路径】

题目 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 例如&#xff0c;在下面的 34 的矩阵中包含单词 "ABCCED"&#xff08;单词中的字母…

java泛型和通配符的使用

泛型机制 本质是参数化类型(与方法的形式参数比较&#xff0c;方法是参数化对象)。 优势:将类型检查由运行期提前到编译期。减少了很多错误。 泛型是jdk5.0的新特性。 集合中使用泛型 总结&#xff1a; ① 集合接口或集合类在jdk5.0时都修改为带泛型的结构② 在实例化集合类时…

【Java并发】synchronized关键字的底层原理

文章目录 1.synchronized作用2.synchronized加锁原理3.monitor锁4.synchronized锁的优化4.1.自适应性自旋锁4.2.偏向锁4.3.轻量级锁4.3.重量级锁 5.总结 1.synchronized作用 synchronized是Java提供一种隐式锁&#xff0c;无需开发者手动加锁释放锁。保证多线程并发情况下数据…

CycleGAN论文解读及代码实现

paper: https://arxiv.org/pdf/1703.10593.pdf github: https://github.com/aitorzip/PyTorch-CycleGAN 1 cycleGAN 小结 网络&#xff1a; 生成器2个&#xff1a;G_A&#xff0c;G_B 判别器两个&#xff1a; D_A&#xff0c;D_B损失函数8个 6个生成器损失函数 2个判别器损失…

Cesium相机理解

关于cesium相机&#xff0c;包括里面内部原理网上有很多人讲的都很清楚了&#xff0c;我感觉这两个人写的都挺好得&#xff1a; 相机 Camera | Cesium 入门教程 (syzdev.cn) Cesium中的相机—setView&lookAtTransform_cesium setview_云上飞47636962的博客-CSDN博客上面这…

记录线上一次mysql只能查询,不能插入或更新的bug

错误复现 突然有一天产品通知xx服务不可用&#xff0c;想着最近也没有服务更新&#xff0c;就先排查一下服务日志 使用postman测试的时候请求明显超时&#xff0c;查看日志显示是一个锁的问题 使用工具连接到mysql&#xff0c;查看information_schema.INNODB_TRX,发现有一个事…

docker删除容器时报错:Error response from daemon: reference does not exist

前言 之前使用的docker版本太低了&#xff0c;升级高版本docker之后的错误。 低版本docker&#xff08;1.30.1&#xff09;中的镜像有&#xff1a;golang、mysql&#xff0c;将docker升级为24.0.5并新拉取mysql最新版本之后&#xff0c;执行docker images命令&#xff0c;发现…

构建Docker容器监控系统(2)(Cadvisor +Prometheus+Grafana)

Cadvisor产品简介 Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息&#xff0c;并以图表的形式向用户展示。 接着上一篇来继续 部署Cadvisor 被监控主机上部署Cadvisor容器…

比较研发项目管理系统:哪个更适合您的需求?

项目管理系统对于保持项目进度、提高效率和确保质量至关重要。然而&#xff0c;市场上众多的研发项目管理系统让许多团队陷入选择困难。本文将对几个主流的研发项目管理系统进行深入分析&#xff0c;以帮助您找到最适合您团队的解决方案。 “哪个研发项目管理系统好用好&#x…

在时间和频率域中准确地测量太阳黑子活动及使用信号处理工具箱(TM)生成广泛的波形,如正弦波、方波等研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

vue3获得url上的参数值

1、引入 import { useRoute } from vue-router2、获得const route useRoute() console.log(route.query.number)

程序员必备技能-九大分布式ID生成策略

九大分布式ID生成策略 1.UUID UUID (Universally Unique Identifier)&#xff0c;通用唯一识别码。UUID是基于当前时间、计数器&#xff08;counter&#xff09;和硬件标识&#xff08;通常为无线网卡的MAC地址&#xff09;等数据计算生成的。 UUID由以下几部分的组合&#x…

《Python入门到精通》os模块详解,Python os标准库

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 os模块详解 1、文件目录操作os.stat() 获取文件状态os.utime() 修改文件时间os.r…

vuejs 设计与实现 - 简单diff算法

DOM 复用与key的作用&#xff1a; DOM 复用什么时候可复用&#xff1f; key 属性就像虚拟节点的“身份证”号&#xff0c;只要两个虚拟节点的 type属性值和 key 属性值都相同&#xff0c;那么我们就认为它们是相同的&#xff0c;即可以进行 DOM 的复用。即 我们通过【移动】来…

无需公网-用zerotier异地组网

无需公网-用zerotier异地组网 在前面的文章中我们讲到利用frp进行内网穿透&#xff0c;但是他的局限在于你需要一台公网服务器。并且对公网服务器的带宽有一定的要求。因此这里我们推荐一款异地组网工具搭建属于自己的虚拟网络&#xff0c;经过授权连接成功之后彼此都在同一网…

Oracle单实例升级补丁

目录 1.当前DB环境2.下载补丁包和opatch的升级包3.检查OPatch的版本4.检查补丁是否冲突5.关闭数据库实例&#xff0c;关闭监听6.应用patch7.加载变化的SQL到数据库8.ORACLE升级补丁查询 oracle19.3升级补丁到19.18 1.当前DB环境 [oraclelocalhost ~]$ cat /etc/redhat-releas…

\vendor\github.com\godror\orahlp.go:531:19: undefined: VersionInfo

…\goAdmin\vendor\github.com\godror\orahlp.go:531:19: undefined: VersionInfo 解决办法 降了go版本(go1.18)&#xff0c;之前是go1.19 gorm版本不能用最新的&#xff0c;降至&#xff08;gorm.io/gorm v1.21.16&#xff09;就可以 修改交插编译参数 go env -w CGO_ENABLED1…

# ⛳ Docker 安装、配置和详细使用教程-Win10专业版

目录 ⛳ Docker 安装、配置和详细使用教程-Win10专业版&#x1f69c; 一、win10 系统配置&#x1f3a8; 二、Docker下载和安装&#x1f3ed; 三、Docker配置&#x1f389; 四、Docker入门使用 ⛳ Docker 安装、配置和详细使用教程-Win10专业版 &#x1f69c; 一、win10 系统配…