首页 > 解决方案 > 如何从表格中制作散点图

问题描述

我有多个数据框,如下所示。

import pandas as pd
import numpy as np
dfA={"1":np.random.rand(3)}
dfA=pd.DataFrame(dfA)
dfB={"2":np.random.rand(5)}
dfB=pd.DataFrame(dfB)
dfC={"3":np.random.rand(6)}
dfC=pd.DataFrame(dfC)

并想像下面这样组合它们。

dfABC=pd.concat([dfA,dfB,dfC], join="outer")
print (dfABC)

例如,dfABC 将是这样的。(我不确定为什么“打印”不起作用。所以让我附上图。)

在此处输入图像描述

预期的输出将是这样的。

在此处输入图像描述

然后我想为这张表做一个散点图。X 轴值为 1,2,3。Y 轴值为 dfA(当 x=1 时)、dfB(当 x=2 时)和 dfC(当 x=3 时)。是否有从该表制作散点图的功能?我用谷歌搜索但找不到它。

另外,可以添加趋势线吗?在 Excel 中,这个散点图很简单,但我想使用 python,因为实际数据集非常大。

非常感谢您的帮助。

标签: pythonpandasmatplotlibscatter

解决方案


如果我理解,以下对您来说可能是一个很好的解决方案:

from matplotlib import pyplot as plt
import pandas as pd
import numpy as np

dfA={"1":np.random.rand(3)}
dfA=pd.DataFrame(dfA)
dfB={"2":np.random.rand(5)}
dfB=pd.DataFrame(dfB)
dfC={"3":np.random.rand(6)}
dfC=pd.DataFrame(dfC)

dfABC=pd.concat([dfA,dfB,dfC], join="outer")
print (dfABC)

for y in dfABC.columns:
    plt.scatter(dfABC[y].values, dfABC[y])
plt.show()

推荐阅读