A.P*_*.P. 2 python scatter matplotlib pandas
假设我有一个包含 100 行和 40 列的数据框,其中第 40 列代表散点图的 Y 轴值。对于 39 个散点图,我想在第 1 列的函数中绘制第 40 列,在第 2 列的函数中绘制第 40 列,在第 3 列的函数中绘制第 40 列,等等直到第 40 列中的第 39 列函数。什么是最好的无需手动完成所有操作即可生成这样的子图的方法?
例如(使用较小的数据框),尝试在子图中以第 1 列的函数和第 2 列的函数散点图第 3 列。
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)
Run Code Online (Sandbox Code Playgroud)
一种方法是在外部创建子图并遍历列名称,为每个子图创建一个图。
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()
Run Code Online (Sandbox Code Playgroud)

subplots参数。根据文档
subplots : boolean, default False
为每列制作单独的子图
我将其解释为以下内容应该有效,但是,我无法对其进行测试。
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6368 次 |
| 最近记录: |