df.plot(kind=“scatter“)和plt.scatter有啥区别
时间: 2023-12-24 19:02:45 浏览: 156
`df.plot(kind="scatter")` 和 `plt.scatter()` 都可以用于绘制散点图,但是它们的使用方式略有不同。
`df.plot(kind="scatter")` 是 Pandas 库中 DataFrame 的一个方法,它可以直接对 DataFrame 进行绘图,其中 `kind="scatter"` 表示绘制散点图。使用该方法时,需要先将数据以 DataFrame 的形式读入,然后通过指定 `x` 和 `y` 轴的列名来确定要绘制哪两列数据。例如,`df.plot(x="column_a", y="column_b", kind="scatter")` 将以 `column_a` 为横坐标,`column_b` 为纵坐标,绘制散点图。
而 `plt.scatter()` 是 Matplotlib 库中的一个函数,需要通过导入 Matplotlib 库来使用。使用该函数时,需要手动设置横纵坐标的数据,例如 `plt.scatter(x, y)`,其中 `x` 和 `y` 分别是横纵坐标的数据。
另外,`df.plot(kind="scatter")` 会自动添加坐标轴标签和图例,而 `plt.scatter()` 需要手动添加。`df.plot(kind="scatter")` 的优点是可以直接对 DataFrame 进行绘图,非常方便。而 `plt.scatter()` 的优点是可以手动控制各种绘图参数,更加灵活。
相关问题
column = data.columns.tolist() fig = plt.figure(figsize=(12,4), dpi=128) for i in range(8): plt.subplot(2,4, i + 1) sns.boxplot(data=data[column[i]], orient="v",width=0.5) plt.ylabel(column[i], fontsize=12) plt.tight_layout() plt.show() #kdeplot column = data.columns.tolist() fig = plt.figure(figsize=(12,4), dpi=128) for i in range(8): plt.subplot(2,4, i + 1) sns.kdeplot(data=data[column[i]],color='blue',shade= True) plt.ylabel(column[i], fontsize=12) plt.tight_layout() plt.show() sns.pairplot(data[column],diag_kind='kde') plt.savefig('Scatter plot.jpg',dpi=256)
这段代码的作用是对"data"数据框的每个列进行数据可视化。
首先,通过"data.columns.tolist()"将"data"数据框的列名转换为列表,并将其存储在名为"column"的变量中。
然后,创建一个大小为(12, 4)且分辨率为128的图形对象,使用"plt.figure(figsize=(12,4), dpi=128)"。
接下来,使用循环遍历范围为8的整数,从1开始。在每次迭代中,使用"plt.subplot(2,4, i + 1)"创建一个2x4的子图网格,并选择当前迭代的子图。
然后,使用"sns.boxplot(data=data[column[i]], orient='v',width=0.5)"绘制第i个列的箱线图,其中"data=data[column[i]]"表示要绘制的数据,"orient='v'"表示箱线图的方向为垂直,"width=0.5"表示箱线图的宽度为0.5。
或者,使用"sns.kdeplot(data=data[column[i]],color='blue',shade=True)"绘制第i个列的核密度估计图,其中"data=data[column[i]]"表示要绘制的数据,"color='blue'"表示曲线的颜色为蓝色,"shade=True"表示在曲线下方填充阴影。
在每个子图中,使用"plt.ylabel(column[i], fontsize=12)"添加y轴标签,标签内容为当前迭代的列名。
通过"plt.tight_layout()"可以调整子图之间的间距和布局。
最后使用"plt.show()"显示图形。
另外,代码中还包含了一个额外的部分,使用"sns.pairplot(data[column],diag_kind='kde')"绘制了一个散点图矩阵,并选择了核密度估计作为对角线上的图形。然后使用"plt.savefig('Scatter plot.jpg',dpi=256)"将图形保存为名为"Scatter plot.jpg"的文件,分辨率为256 dpi。
import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split # 数据分析 df = pd.read_csv('iris.csv', skiprows=[0], names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']) print(df.info()) print(df.describe()) print(df.isnull().sum()) # 随机抽取数据 train_data, test_data = train_test_split(df, test_size=0.3) train_data.to_csv('train_data.csv', index=False) test_data.to_csv('test_data.csv', index=False) # 数据可视化 df.plot(x='class', y=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'], kind='line', title='Line Plot', figsize=(10, 5)) df.hist(bins=10, figsize=(10, 5)) df.plot(x='petal_length', y='petal_width', kind='scatter', title='Scatter Plot', figsize=(10, 5)) plt.show()
这段代码是使用 Python 中的 pandas, matplotlib 和 sklearn 库对鸢尾花数据集进行了一些数据分析和可视化。
首先,通过 pandas 库读取了一个名为 iris.csv 的数据文件,该文件包含了鸢尾花的一些观测数据。然后使用 info(), describe() 和 isnull() 方法对数据进行了一些基本的统计分析,包括了数据的维度、每个属性的均值、标准差、最小值、最大值、缺失值数量等等。
接下来,使用 sklearn 库中的 train_test_split() 方法将数据集划分为训练集和测试集,并将它们保存到 train_data.csv 和 test_data.csv 文件中。
最后,使用 matplotlib 库对数据进行了一些可视化,包括了折线图、直方图和散点图。这些可视化将不同属性之间的关系展示出来,方便我们更好地理解和分析数据。
阅读全文