matplotlib实现二维坐标系绘图

本文介绍了如何通过Python中的matplotlib库,从Excel文件中读取服务器数据,处理时间格式,然后绘制虚拟内存使用情况的图表,以便于性能和稳定性评估。

前言

性能、稳定性等测试过程中需要收集服务器数据,并进行数据分析。而通过matplotlib就可以直观上看到数据变化,进而对性能、稳定性等进行分析。

示例

from matplotlib import pyplot as plt
from matplotlib import pylab
import pandas as pd
from matplotlib import dates as md


print("开始处理数据")
file_dir = '../data/TEST.xlsx'
data_list = pd.read_excel(file_dir, engine='openpyxl')

# 对数据进行处理
time_format = '%Y-%m-%d %H:%M:%S'
data_list['time'] = data_list['time'].apply(lambda x: x.replace("_", " "))
data_list['time'] = pd.to_datetime(data_list['time'], format=time_format)
data_list['virt(GB)'] = data_list['virt(KB)'].apply(lambda x: int(x)/1024/1024)
data_list['res(GB)'] = data_list['res(KB)'].apply(lambda x: int(x)/1024/1024)
data_list['free_memory(GB)'] = data_list['free_memory(MB)'].apply(lambda x: int(x)/1024)

# 绘图
pylab.rcParams["font.sans-serif"] = ["Microsoft YaHei"]
plt.rcParams["axes.unicode_minus"] = False
plt.gca().xaxis.set_major_formatter(md.DateFormatter(time_format))
plt.plot(data_list['time'], data_list['virt(GB)'])
title_name = "虚拟内存使用情况"
x_name = "时间"
y_name = "虚拟内存使用大小"
plt.title(title_name)
plt.xlabel(x_name)
plt.ylabel(y_name)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
### 使用 Matplotlib 在 3D 坐标系绘制倾斜 45 度的正弦曲线 要在三维坐标系绘制一条倾斜 45 度的正弦曲线,可以通过 `mpl_toolkits.mplot3d` 提供的功能实现。以下是具体的方法: #### 方法概述 为了在三维空间中定义一条正弦曲线并使其倾斜 45 度,需要引入三个维度的数据:x、y 和 z。假设我们希望这条曲线沿着 x-y 平面中的某个方向延伸,则可以设定 x 和 y 的关系满足特定角度条件(例如 45 度),而 z 方向则由正弦函数决定。 #### 实现代码 以下是一个完整的 Python 示例代码用于完成此任务: ```python import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 定义参数 t = np.linspace(0, 10 * np.pi, 1000) # 参数 t 表示时间或者弧长变量 a = 1 / np.sqrt(2) # 斜率因子 (使 xy 平面上的角度为 45°) # 计算三维数据点 x = a * t # X 轴上的投影随 t 变化 y = a * t # Y 轴上的投影也随 t 变化,保持与 x 同比例变化以形成 45°角 z = np.sin(t) # Z 轴上按照 sin 函数波动 # 创建图形对象 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 绘制三维曲线 ax.plot(x, y, z, color='blue', label='Sine Curve at 45 Degrees') # 设置标签和其他属性 ax.set_xlabel('X Axis') ax.set_ylabel('Y Axis') ax.set_zlabel('Z Axis') ax.legend() # 展示图像 plt.show() ``` 上述代码实现了如下功能: - **生成数据**:利用 NumPy 中的 `linspace()` 函数生成一系列的时间或弧长变量 \( t \),并通过三角函数计算对应的 \( x \), \( y \), 和 \( z \)[^1]。 - **设置斜率**:由于题目要求的是 45 度倾角,在二维平面上意味着 \( x=y \),因此这里设定了系数 \( a=\frac{1}{\sqrt{2}}\) 来保证这一点[^2]。 - **绘图操作**:借助 Matplotlib 的 `Axes3D` 类型来创建三维坐标系,并调用其 `.plot()` 方法绘制指定路径[^3]。 最终得到的结果是一条既沿 XY 面呈 45 度走向又上下起伏如同波浪般的立体视觉效果的正弦曲线[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值