如何绘制 pandas 列的散点子图
How to plot scatter subplots of columns from pandas
假设我有一个包含 100 行和 40 列的数据框,其中第 40 列代表散点图的 Y 轴值。对于 39 个散点图,我想根据第 1 列的函数绘制第 40 列,根据第 2 列的函数绘制第 40 列,根据第 3 列的函数绘制第 40 列,等等,直到第 40 列作为第 39 列的函数。什么是最好的无需手动完成所有操作即可生成这样的子图的方法?
例如(使用较小的数据框),尝试散点图第 3 列作为第 1 列的函数,第 3 列作为子图中第 2 列的函数。
df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})
df.plot(x=["AAA", "BBB"], y=["CCC"], kind="scatter", subplots=True, sharey=True)
一种方法是在外部创建子图并遍历列名,为每个子图创建一个图。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})
fig, axes = plt.subplots(1,len(df.columns.values)-1, sharey=True)
for i, col in enumerate(df.columns.values[:-1]):
df.plot(x=[col], y=["CCC"], kind="scatter", ax=axes[i])
plt.show()
另一种可能在 pandas 0.19 中起作用的方法是使用 subplots
参数。根据the documentation
subplots : boolean, default False
Make separate subplots for each column
我对此进行了解释,因此以下内容应该可以工作,但是,我无法对其进行测试。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})
df.plot(x=df.columns.values[:-1], y=["CCC" for _ in df.columns.values[:-1]],
kind="scatter", subplots=True, sharey=True)
plt.show()
假设我有一个包含 100 行和 40 列的数据框,其中第 40 列代表散点图的 Y 轴值。对于 39 个散点图,我想根据第 1 列的函数绘制第 40 列,根据第 2 列的函数绘制第 40 列,根据第 3 列的函数绘制第 40 列,等等,直到第 40 列作为第 39 列的函数。什么是最好的无需手动完成所有操作即可生成这样的子图的方法?
例如(使用较小的数据框),尝试散点图第 3 列作为第 1 列的函数,第 3 列作为子图中第 2 列的函数。
df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})
df.plot(x=["AAA", "BBB"], y=["CCC"], kind="scatter", subplots=True, sharey=True)
一种方法是在外部创建子图并遍历列名,为每个子图创建一个图。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})
fig, axes = plt.subplots(1,len(df.columns.values)-1, sharey=True)
for i, col in enumerate(df.columns.values[:-1]):
df.plot(x=[col], y=["CCC"], kind="scatter", ax=axes[i])
plt.show()
另一种可能在 pandas 0.19 中起作用的方法是使用
subplots
参数。根据the documentation
subplots : boolean, default False
Make separate subplots for each column
我对此进行了解释,因此以下内容应该可以工作,但是,我无法对其进行测试。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})
df.plot(x=df.columns.values[:-1], y=["CCC" for _ in df.columns.values[:-1]],
kind="scatter", subplots=True, sharey=True)
plt.show()