[英]Matplotlib pandas dataframe scatter type subplots according to the same column
假设我有一个包含100行40列的数据框,其中40列表示散点图的Y轴值。 对于39个散点图,我想绘制第40列,第1列,第40列,第2列,第40列,第3列,依此类推,直到第39列的第40列。产生这种子图的方法,而无需手动进行?
例如(使用较小的数据框),尝试将子列中第1列的函数中的第3列散布,而第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)
一种方法是在外部创建子图并在列名上循环,为每个子图创建一个图。
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()
subplots
参数。
根据文档
子图:布尔值,默认为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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.