如何绘制Pandas数据框中多列的图表

3

我需要使用波士顿房价数据集制作散点图。我想将MEDV列与所有其他列绘制在一起。此代码会将所有图形绘制在同一张图上。如何将它们分开?查看图片描述

import matplotlib.pyplot as plt
%matplotlib inline
fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(12, 12))
for column, ax in zip(['CRIM', 'ZN','INDUS', 'CHAS', 'NOX', 'RM'], axes):
    plt.scatter(boston_df[column], boston_df.MEDV)
3个回答

2

如果将axes对象展平,您的代码将正常工作,因为当前您只循环一次axes,这是一个二维对象。因此,在for循环中使用axes.flatten(),然后使用ax.scatter,它将每列绘制到新的图形中。

绘图的顺序将是第一行,然后是第二行,最后是第三行。

fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(12, 12))
for column, ax in zip(['CRIM', 'ZN','INDUS', 'CHAS', 'NOX', 'RM'], axes.flatten()):
    ax.scatter(boston_df[column], boston_df.MEDV)

1
你需要使用 ax.scatter 而不是 plt.scatter,这样它们才会在你创建的坐标轴中绘制。

1
尝试使用ax[row,col].scatter()进行绘图。这应该可以解决问题。你需要同时迭代行和列。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接