我正在尝试为预定的x&y数据创建Subplots网格。函数应遍历pandas DataFrame,标识类别变量,并为给定类别变量的每个级别用一行绘制x和y数据。地块的数量等于分类变量的数量,并且每个地块上的行数应反映该变量的类别数量。
我最初尝试将Dataframe在给定类别变量的For循环中分组,但是我得到了一些混合结果。我认为我的问题在于如何分配绘制线条的轴。
Notification mNotification;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mNotification =
new Notification.Builder(this, NOTIFICATION_CHANNEL_ID)
.setContentTitle("mobiChk II API Service")
.setContentText("Service is running")
.setSmallIcon(R.mipmap.ic_launcher_round)
.setContentIntent(pendingIntent)
.setTicker("mobiChk II API")
.build();
} else {
mNotification =
new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setContentTitle("mobiChk II API Service")
.setContentText("Service is running")
.setSmallIcon(R.mipmap.ic_launcher_round)
.setSound(null)
.setContentIntent(pendingIntent)
.setTicker("mobiChk II API")
.build();
}
除了得到ax.plot是“列表”对象且不可调用的错误之外,所有绘制的线都放在子图的最终图上。
答案 0 :(得分:0)
我对您的plot_func
感到困惑。删除它,然后直接使用ax.plot(X, y)
进行绘图即可。修改后的行以注释突出显示
fig, axs = plt.subplots(2, 2, figsize=(30,24))
axs = axs.flatten()
for ax, category in zip(axs, cat_list):
df_grouped = grouping_for_graphs(df,x_col, y_col,category,agg_func)
x_col = df_grouped.columns[0]
y_col = df_grouped.columns[-1]
category = str(list(df_grouped.columns.drop([x_lab, y_lab]))[0])
for feature in list(df_grouped[category].unique()):
X = df_grouped[df_grouped[category] == feature][x_col]
y = df_grouped[df_grouped[category] == feature][y_col]
ax.plot(X,y) # <--- Modified here
ax.set_xlabel(x_col)
ax.set_ylabel(y_col)
ax.set_title(feature)