在ax=plt.Axes([,,,])方法中参数值区间是多少?
时间: 2023-04-05 22:05:19 浏览: 162
这个问题涉及到技术细节,我可以回答。在ax=plt.Axes([left, bottom, width, height])方法中,left、bottom、width、height的取值范围都是0到1之间的小数。
相关问题
hbin = 10 for i in tqdm(data['WindNumber'].unique()): col = 'WindSpeed' cond = (data.WindNumber==i) & (data.label == 0) temp_df = data[cond] h_bins = pd.cut(temp_df.Power, np.arange(-1000, 3000, hbin)) temp_df['hbins'] = h_bins groups = [] for index,temp in temp_df.groupby("hbins"): if temp.shape[0]==0: continue iqr = temp[col].quantile(0.75) - temp[col].quantile(0.25) t1 = temp[col].quantile(0.25) - 1.5 * iqr t2 = temp[col].quantile(0.75) + 1.5 * iqr temp = temp[((temp[col]<t1) | (temp[col]>t2))] groups.append(temp) groups = pd.concat(groups).reset_index(drop = True) cond = (data.WindNumber==i) & (data.Time.isin(groups.Time)) data.loc[cond,'label'] = 3 def vis_result_2D(df,label): fig = plt.figure(figsize=(16,6)) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False ax = fig.add_subplot(121) for i in df['label'].unique(): temp_df = df[df['label']==i] ax.scatter(temp_df['WindSpeed'],temp_df['Power'],s=0.3,color=mcolors.TABLEAU_COLORS[colors[i]],label=i) plt.legend() plt.title("各类异常的分布") plt.grid(True) ax = fig.add_subplot(122) df = df[df['label']==0] ax.scatter(df['WindSpeed'],df['Power'],s=0.3) plt.title("清洗后的结果") plt.grid(True每行详细注释
这段代码是在对风力发电数据进行异常检测和清洗。首先,使用 tqdm 库对数据集中的风机编号进行遍历,对于每个风机编号进行以下操作:筛选出标签为0的数据,并将根据 Power 列的值分成 hbin 个区间,将每个数据点所在的区间标记为 hbins。接着,将 hbins 列进行分组,对于每个分组,计算 WindSpeed 列的 25% 分位数和 75% 分位数,根据这两个分位数和 1.5 倍的四分位距(IQR)计算出阈值 t1 和 t2,将 WindSpeed 列在 t1 和 t2 之外的数据点作为异常点,将这些异常点的标签设为3。最后,可视化不同标签的数据点在 WindSpeed-Power 平面上的分布情况,并将标签为0的数据点作为清洗后的结果进行展示。
fig, ax = plt.subplots() bins = np.arange(-3, 8) ax.plot(x, np.full_like(x, -0.1), '|k', markeredgewidth=1) for count, edge in zip(*np.histogram(x, bins)): for i in range(count): ax.add_patch(plt.Rectangle((edge, i), 1, 1, alpha=0.5)) ax.set_xlim(-4, 8) ax.set_ylim(-0.2, 8)
这段代码使用了 Matplotlib 库来绘制一个直方图。首先,使用 `plt.subplots()` 函数创建一个包含单个子图的图形窗口,并将返回的 `Figure` 和 `Axes` 对象分别赋值给 `fig` 和 `ax` 变量。然后,使用 `np.arange()` 函数定义了一个从 -3 到 7 的间隔为 1 的数组,作为直方图的边界。接着,使用 `ax.plot()` 函数绘制了一条水平直线,作为直方图的基准线。然后,使用 `np.histogram()` 函数计算了每个区间内数据点的数量,并使用 `zip()` 函数将每个区间的数量和边界值打包成一个元组。接着,使用两个嵌套的 `for` 循环来为每个数据点绘制一个矩形,其中外部循环遍历每个区间,内部循环遍历该区间内的数据点。最后,使用 `ax.set_xlim()` 和 `ax.set_ylim()` 函数设置了 x 轴和 y 轴的范围。
阅读全文