尝试使用 for 循环在子图中制作散点图
Trying to make scatter plots in subplots using for-loops
我正在尝试使用 for 循环制作子图以遍历数据框中的 x 变量。所有图都是散点图。
X-variable: 'Protein', 'Fat', 'Sodium', 'Fiber', 'Carbo', 'Sugars'
y-variable: 'Cal'
这就是我卡住的地方
plt.subplot(2, 3, 2)
for i in range(3):
plt.scatter(i,sub['Cal'])
使用此代码:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('data.csv')
columns = list(df.columns)
columns.remove('Cal')
fig, ax = plt.subplots(1, len(columns), figsize = (20, 5))
for idx, col in enumerate(columns, 0):
ax[idx].plot(df['Cal'], df[col], 'o')
ax[idx].set_xlabel('Cal')
ax[idx].set_title(col)
plt.show()
我得到了这个散点图的子图:
但是,使用单个散点图并使用标记颜色来区分数据类型可能是更好的选择。请参阅此代码:
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
sns.set_style('darkgrid')
df = pd.read_csv('data.csv')
# df.drop(columns = ['Sodium'], inplace = True) # <--- removes 'Sodium' column
table = df.melt('Cal', var_name = 'Type')
fig, ax = plt.subplots(1, 1, figsize = (10, 10))
sns.scatterplot(data = table,
x = 'Cal',
y = 'value',
hue = 'Type',
s = 200,
alpha = 0.5)
plt.show()
给出了所有数据都在一起的图:
'Sodium'
值与其他值到目前为止不同,因此,如果您使用以下行删除此列:
df.drop(columns = ['Sodium'], inplace = True)
你得到一个更易读的情节:
我正在尝试使用 for 循环制作子图以遍历数据框中的 x 变量。所有图都是散点图。
X-variable: 'Protein', 'Fat', 'Sodium', 'Fiber', 'Carbo', 'Sugars'
y-variable: 'Cal'
这就是我卡住的地方
plt.subplot(2, 3, 2)
for i in range(3):
plt.scatter(i,sub['Cal'])
使用此代码:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('data.csv')
columns = list(df.columns)
columns.remove('Cal')
fig, ax = plt.subplots(1, len(columns), figsize = (20, 5))
for idx, col in enumerate(columns, 0):
ax[idx].plot(df['Cal'], df[col], 'o')
ax[idx].set_xlabel('Cal')
ax[idx].set_title(col)
plt.show()
我得到了这个散点图的子图:
但是,使用单个散点图并使用标记颜色来区分数据类型可能是更好的选择。请参阅此代码:
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
sns.set_style('darkgrid')
df = pd.read_csv('data.csv')
# df.drop(columns = ['Sodium'], inplace = True) # <--- removes 'Sodium' column
table = df.melt('Cal', var_name = 'Type')
fig, ax = plt.subplots(1, 1, figsize = (10, 10))
sns.scatterplot(data = table,
x = 'Cal',
y = 'value',
hue = 'Type',
s = 200,
alpha = 0.5)
plt.show()
给出了所有数据都在一起的图:
'Sodium'
值与其他值到目前为止不同,因此,如果您使用以下行删除此列:
df.drop(columns = ['Sodium'], inplace = True)
你得到一个更易读的情节: