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'),将多个函数绘制于横坐标相同的,放在一张子图里
时间: 2023-06-14 14:06:48 浏览: 151
您的代码是用于绘制两个函数在同一个子图中的折线图,并使用了Pandas和Matplotlib库来实现。其中,通过np.hstack函数将Pandas DataFrame对象转换为NumPy数组,并使用rolling函数对数据进行滚动平均处理,以减少数据的噪声。使用fill_between函数将两个曲线之间的区域填充为一个矩形,以突出两条曲线之间的差异。最后,使用plt.ylabel和plt.xlabel函数设置纵轴和横轴的标签,并使用plt.show函数显示图形。
如果您想要将多个函数绘制于横坐标相同、纵坐标不同的多个子图中,可以使用Matplotlib库中的subplot函数来实现。subplot函数可以在一个大的图形中创建多个子图,并指定每个子图的位置和大小。例如:
```
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 1, figsize=(15, 8)) #创建一个2行1列的子图,每个子图的大小为15*8
axs[0].plot(x, y1) #在第一个子图中绘制第一个函数
axs[0].set_ylabel('y1') #设置第一个子图的纵轴标签
axs[1].plot(x, y2) #在第二个子图中绘制第二个函数
axs[1].set_ylabel('y2') #设置第二个子图的纵轴标签
plt.xlabel('x') #设置横轴标签
plt.show() #显示子图
```
在这个例子中,我们使用subplot函数创建了一个2行1列的子图,每个子图的大小为15*8。然后我们在第一个子图中绘制了第一个函数y1,并设置了纵轴标签。接着,我们在第二个子图中绘制了第二个函数y2,并设置了纵轴标签。最后,我们使用plt.xlabel函数设置横轴标签,并使用plt.show函数显示子图。
阅读全文