【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 pltmonths = ['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.5plt.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.hqwc.cn/news/66456.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通达信接口调用过程需要借助什么?

通达信接口是一种用于获取、传输和处理股票市场相关数据的软件接口&#xff0c;以提供了一种连接股票市场数据源和数据使用者之间的通道&#xff0c;允许开发者通过编程方式获取股票行情数据、交易数据和相关信息等。如果调用通达信接口&#xff0c;需要借助以下几个方面的工具…

苹果Mac像Windows一样使用

一、将磁盘访问设置的像Windows一样&#xff1a; 1.1、点击任务栏第一个按钮打开“访达”&#xff0c;点击菜单栏上的访达-偏好设置&#xff1a; 1.2、勾选“硬盘”&#xff0c;这样macOS的桌面上就会显示一个本地磁盘&#xff0c;之后重命名为磁盘根&#xff0c;相当于window…

无人机光伏巡检系统的全新作用解析,提升效率保障安全

随着光伏发电行业的快速发展&#xff0c;光伏电站的规模越来越大&#xff0c;光伏维护和巡检成为一个巨大的挑战。为解决传统巡检方法的低效率和安全风险问题&#xff0c;无人机光伏巡检系统应运而生&#xff0c;并成为提升光伏巡检效率和保障安全的利器。 首先&#xff0c;无人…

pmp通过率都97%,只要考都能过?还有啥价值?

PMP 的通过率确实挺高的&#xff0c;网传培训机构的通过率高达 97%&#xff0c;但是每年考PMP 的人不减反增&#xff0c;大家可以想一下&#xff0c;这是为什么&#xff1f; 一、先给大家分析一下现在 PMP 的使用场景 1、项目管理岗位招聘的门槛 PMP 是项目管理领域的一个权…

Vue基本知识

一、vue入门 Vue为前端的框架&#xff0c;免除了原生js的DOM操作。简化书写。 基于MVVM的思想&#xff0c;实现数据的双向绑定&#xff0c;使编程的重点放在数据上。 1、引入vue.js文件 2、定义vue核心对象&#xff0c;定义数据模型 3、编写视图 //1、引入vue.js <scr…

穿越数字奇境:探寻元宇宙中的科技奇迹

随着科技的迅速发展&#xff0c;元宇宙正逐渐成为一个备受关注的话题&#xff0c;它不仅是虚拟现实的延伸&#xff0c;更是将现实世界与数字世界融合的未来典范。在这个神秘而充满活力的数字奇境中&#xff0c;涉及了众多领域和技术&#xff0c;为我们呈现出了一个无限的创新和…

微服务01-SpringCloud

1、简介 SpringCloud集成了各种微服务功能组件&#xff0c;并基于SpringBoot实现了这些组件的自动装配&#xff0c;从而提供了良好的开箱即用体验。 其中常见的组件包括&#xff1a; 2、服务拆分和远程调用 2.1 服务拆分 这里总结了微服务拆分时的几个原则&#xff1a; …

《局外人》阅读笔记

《局外人》阅读笔记 2023年8月14日在杭州小屋读完。我看的是张雨彤编译的这本&#xff0c;这本书包含了两部分&#xff0c;第一部分是《局外人》是原版的小说故事&#xff0c;第二部分是《堕落》包括了六天内的自然自语&#xff0c;完全没看懂&#xff0c;写作风格突变&#xf…

Vue组件的嵌套关系;父组件传递子组件props;子组件传递给父组件$emit;自定义事件;案例

目录 1_Vue组件的嵌套关系1.1_认识组件的嵌套1.2_组件的拆分1.3_组件的通信 2_父组件传递子组件props2.1_父子组件之间通信的方式2.2_父组件传递给子组件2.3_Props的对象用法 3_子组件传递给父组件$emit4_自定义事件(了解)5_小案例6_补充 1_Vue组件的嵌套关系 1.1_认识组件的嵌…

EB配置------PORT(一)

今天学习了PortPinInputPullResistor 这个配置。 虽然它配置为输出后显示不可更改&#xff0c;但是它默认的配置依然有效。 该参数允许为所选端口引脚配置内部拉电阻[向上/向下]。 注意&#xff1a;此参数的默认值设置为相应SFR的重置值。 PORT_PIN_IN_NO_PULL&#xff1a;…

【计算机网络】Udp详解

前言 上几文章我们讲解了应用层协议Http和Https&#xff0c;要知道应用层协议有很多&#xff0c;这些都是程序员自己定制的&#xff0c;而真正要传输的时候&#xff0c;是要在操作系统的传输层进行的&#xff0c;今天我们就来学习一下传输层协议Udp的 标识一个通信 要进行跨…

服务器之LNMP

lnmp的构成 L&#xff1a;linux系统,操作系统。 N&#xff1a;nginx网站服务&#xff0c;前端,提供前端的静态页面服务。同时具有代理,转发的作用。 转发&#xff1a;主要是转发后端请求。转发到PHP。nginx没有处理动态资源的功能,他有可以支持转发动态请求的模块。 M&…