考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

以下代码使用 matplotlib 创建了包含两个子图的画布,并试图在两个子图中分别用 seaborn 绘制散点图。然而,运行后发现第一个散点图并没有出现在左侧的子图(ax1)中,而是覆盖在了第二个子图上。请指出代码中的错误并选择正确的改写方案。 import matplotlib.pyplot as plt import seaborn as sns fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) # 第一张图 sns.scatterplot(data=df, x='height', y='weight') # 第二张图 sns.scatterplot(data=df, x='age', y='weight' , ax=ax2) plt.show()
A. 在第二个 sns.scatterplot 中增加参数 fig=fig。
B. 将第一个 sns.scatterplot 改为 sns.scatterplot(..., ax=ax1)。
C. 在第二个 sns.scatterplot 之前调用 plt.subplot(1, 2, 2)。
D. 将 plt.subplots 改为 plt.figure() 并手动管理坐标轴。
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

考察点: seaborn 的 axes-level 函数(如 scatterplot)如何指定绘图目标坐标轴。 分析: Seaborn 的 axes-level 函数默认会在当前活动的 matplotlib axes 上绘图,或者如果没有指定且当前没有 axes,则创建一个新的。在代码fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) 执行后,ax2 是当前激活的 axes。代码sns.scatterplot(data=df, x='height', y='weight') 没有指定 ax 参数,因此它默认画在了 ax2 上。要画在 ax1 上,必须显式传递 ax=ax1 参数。