def plot_rate( rate_his, rolling_intv = 50, ylabel='标准化计算速率',ax=None): import matplotlib.pyplot as plt import pandas as pd import matplotlib as mpl rate_array = np.asarray(rate_his) # 将一个 Python 列表 rate_his 转换为 NumPy 数组 rate_array df = pd.DataFrame(rate_his) # 创建了一个名为df的Pandas DataFrame对象,将rata_his数据进行索引拆分过滤排序 if ax is None: fig, ax = plt.subplots(figsize=(15, 8)) mpl.style.use('seaborn') #设置matplotlib 库的绘图风格为 seaborn 风格 fig, ax = plt.subplots(figsize=(15,8))# 使用 Matplotlib 库创建一个带有指定大小的子图对象,宽为15,高为8 plt.plot(np.arange(len(rate_array))+1, np.hstack(df.rolling(rolling_intv, min_periods=1).mean().values), 'b') #使用plt.plot函数将生成的x轴和y轴坐标绘制成折线图,并且'b' 表示蓝色的线条。 plt.fill_between(np.arange(len(rate_array))+1, np.hstack(df.rolling(rolling_intv, min_periods=1).min()[0].values), np.hstack(df.rolling(rolling_intv, min_periods=1).max()[0].values), color = 'b', alpha = 0.2) #将这两个曲线之间的区域填充成颜色为蓝色、透明度为0.2的矩形 plt.ylabel(ylabel)# 设置纵轴标签 plt.xlabel('Time Frames')#设置横轴标签 plt.show(), plot_rate(Q.sum(axis=1)/N, 100, 'Average Data Queue') plot_rate(energy.sum(axis=1)/N, 100, 'Average Energy Consumption'),修改将多个函数绘制于横坐标相同的,放在一张子图里的代码z
时间: 2023-06-14 11:06:26 浏览: 108
你可以使用 Matplotlib 库的 subplot() 函数创建一个包含多个子图的图形,然后在每个子图中绘制一个函数。以下是一个修改后的代码示例:
```
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib as mpl
mpl.style.use('seaborn')
fig, axs = plt.subplots(2, 1, figsize=(15, 10), sharex=True)
# 绘制第一个函数
df_q = pd.DataFrame(Q.sum(axis=1)/N)
axs[0].plot(np.arange(len(Q))+1, np.hstack(df_q.rolling(100, min_periods=1).mean().values), 'b')
axs[0].fill_between(np.arange(len(Q))+1, np.hstack(df_q.rolling(100, min_periods=1).min()[0].values), np.hstack(df_q.rolling(100, min_periods=1).max()[0].values), color='b', alpha=0.2)
axs[0].set_ylabel('Average Data Queue')
# 绘制第二个函数
df_e = pd.DataFrame(energy.sum(axis=1)/N)
axs[1].plot(np.arange(len(energy))+1, np.hstack(df_e.rolling(100, min_periods=1).mean().values), 'r')
axs[1].fill_between(np.arange(len(energy))+1, np.hstack(df_e.rolling(100, min_periods=1).min()[0].values), np.hstack(df_e.rolling(100, min_periods=1).max()[0].values), color='r', alpha=0.2)
axs[1].set_ylabel('Average Energy Consumption')
# 设置共享的横坐标标签和标题
plt.xlabel('Time Frames')
plt.suptitle('Function Plots')
plt.show()
```
在这个示例中,我们使用了 `subplot()` 函数创建了一个包含 2 个子图的图形,每个子图都包含一个函数的绘制结果。我们还设置了共享的横坐标标签和标题。你可以根据需要修改这个示例代码,以适应你的具体情况。
阅读全文