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

备考刷题,请到

CDA认证小程序

阅读以下代码片段,假设 df 是一个包含列 x, y [连续型变量]; category[类别型变量] 的 Pandas DataFrame。关于这段代码的执行结果,下列说法正确的是? import matplotlib.pyplot as plt import seaborn as sns fig, ax = plt.subplots(figsize=(8, 6)) sns.scatterplot(data=df, x='x', y='y', hue='category', ax=ax) ax.set_title("Scatter Plot with Seaborn") plt.show()
A. 代码会报错,因为 sns.scatterplot 不能接受 ax 参数,它只能在全局状态下绘图。
B. sns.scatterplot 会在一个新的图形窗口中绘图,而 ax.set_title 会修改一个空的子图,导致标题与散点图分离。
C. 散点图会被绘制在 ax 指定的坐标轴对象上,且标题 "Scatter Plot with Seaborn" 会正确显示在该图上。
D. sns.scatterplot 会自动忽略 ax 参数,强制使用 plt.gca() 获取当前坐标轴,因此 fig, ax 的创建是多余的。
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

原理考察:Seaborn 的函数(如 scatterplot, lineplot, barplot 等)通常设计为同时支持“过程式”(直接画在当前激活的 axes 上)和“面向对象式”(通过 ax 参数指定具体的 Axes 对象)。 代码分析: fig, ax = plt.subplots(...) 创建了一个 Figure 和一个 Axes 对象。 sns.scatterplot(..., ax=ax) 明确指定将数据绘制在 ax 这个对象上。这是推荐的最佳实践,特别是在需要精细控制布局或多子图时。 ax.set_title(...) 直接操作该 Axes 对象设置标题。 因此,图表和标题会完美结合在同一个坐标系中。 错误选项分析: A 错:Seaborn 绝大多数绘图函数都支持 ax 参数。 B 错:指定了 ax 后,不会创建新窗口,而是复用传入的对象。 D 错:如果不传 ax,默认才是 plt.gca();传了 ax 则优先使用传入对象。