[英]Seaborn Scatter Plot multiple plots with loop
我有一个数据集,其中包含美国每个州的两列模式,其中一列定义为“cpm”,另一列定义为“支出”。 我试图确定如何遍历每个状态并为每个状态创建一个子图,散点图以 cpm 为 x 轴,花费为 y 轴。 虽然我能够为每个状态创建这个循环和一个子图,但我没有看到正在显示的数据。 我应该使用不同的 seaborn 情节来实现这一目标吗?
代码:
# state list
states = [
'alabama',
'alaska',
'arizona',
]
for state in states[0:3]:
state_cpm = state + "_" + "cpm"
state_spend = state + "_" + "spend"
sns.pairplot(data=df, x_vars=state_cpm, y_vars=state_spend)
// df data example
alabama_cpm | alabama_spend
9.883076 | 63477.0
10.013527 | 100110.0
10.358303 | 91535.0
当前结果:
很可能sns.scatterplot()
会起作用。 sns.pairplot
仅在您想要列之间的所有成对图时才有效。
例如数据集是这样的:
import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
states = ['alabama','alaska','arizona']
df = pd.DataFrame(np.random.uniform(0,1,(20,6)),
columns = [i + "_" + j for i in states for j in ['cpm','spend']])
df.head()
alabama_cpm alabama_spend alaska_cpm alaska_spend arizona_cpm arizona_spend
0 0.444585 0.305385 0.113950 0.396746 0.450246 0.072074
1 0.028701 0.446495 0.527090 0.013968 0.367590 0.598380
2 0.726407 0.214152 0.220744 0.955635 0.337088 0.128571
然后使用您拥有的代码:
fig, ax = plt.subplots(3,1,figsize=(5,5))
for i,state in enumerate(states[0:3]):
state_cpm = state + "_" + "cpm"
state_spend = state + "_" + "spend"
sns.scatterplot(data=df, x=state_cpm, y=state_spend,ax=ax[i])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.