【问题标题】:How to make scatterplot from table如何从表格中制作散点图
【发布时间】:2018-12-17 04:22:31
【问题描述】:

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

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,因为实际数据集非常大。

非常感谢您的帮助。

【问题讨论】:

  • 不清楚预期的输出...你想要每个数据帧有 3 个子图吗?
  • 感谢您的评论。请看附图。
  • 首先,连接:dfABC = pd.concat([dfA, dfB, dfC], join="outer", sort=True, axis=1)。然后,融化并绘制:dfABC.melt().astype(float).plot.scatter('variable', 'value') 你可以从那里拿走它。
  • 成功了。非常感谢!你知道如何添加趋势线吗?

标签: python pandas matplotlib scatter


【解决方案1】:

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

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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2020-08-15
    • 2010-12-31
    • 2018-12-21
    • 2020-05-07
    相关资源
    最近更新 更多