我创建了一个类似于正在使用的虚拟数据框架。该数据框架包含票价、舱室类型和生还情况(1表示生存,0表示死亡)。
第一个图表通过factorplot创建许多图形,每个图形代表一个舱室类型。X轴由票价表示,Y轴只是在该票价处出现次数的计数。
然后,我通过[Cabin,Fare]分组创建了另一个系列,并继续获取生存率的平均值,以获得每个舱室和票价的生存率。
我想要做的是,在上面的计数图上绘制一条折线图(因此x轴相同,每个图仍由Cabin类型表示),但我希望y轴是我们在上面代码中通过groupby系列x计算出的生存平均值,当输出时将是下面的第三列。
线图的y轴应该在右侧,我想要的范围是[0, .20, .40, .60, .80, 1.0, 1.2]。我查看了seaborn文档一段时间,但是我无法正确地做到这一点。我的期望输出类似于这个图像。对不起,我的书写看起来很糟糕,我不知道怎么使用画图工具。因此,每张图的刻度和数字都在右侧。线图将通过每个x,y点的点连接。所以对于Cabin A,第一个x,y点是(10,0),其中0对应右侧的y轴。第二个点是(20,1),依此类推。
第一个图表通过factorplot创建许多图形,每个图形代表一个舱室类型。X轴由票价表示,Y轴只是在该票价处出现次数的计数。
然后,我通过[Cabin,Fare]分组创建了另一个系列,并继续获取生存率的平均值,以获得每个舱室和票价的生存率。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(dict(
Fare=[20, 10, 30, 40, 40, 10, 20, 30, 40 ,30, 20, 30, 30],
Cabin=list('AAABCDBDCDDDC'),
Survived=[1, 0, 0, 0 ,0 ,1 ,1 ,0 ,1 ,1 , 0, 1, 1]
))
g =sns.factorplot(x='Fare', col='Cabin', kind='count', data=df,
col_wrap=3, size=3, aspect=1.3, palette='muted')
plt.show()
x =df.groupby(['Cabin','Fare']).Survived.mean()
我想要做的是,在上面的计数图上绘制一条折线图(因此x轴相同,每个图仍由Cabin类型表示),但我希望y轴是我们在上面代码中通过groupby系列x计算出的生存平均值,当输出时将是下面的第三列。
Cabin Fare
A 10 0.000000
20 1.000000
30 0.000000
B 20 1.000000
40 0.000000
C 30 1.000000
40 0.500000
D 10 1.000000
20 0.000000
30 0.666667
线图的y轴应该在右侧,我想要的范围是[0, .20, .40, .60, .80, 1.0, 1.2]。我查看了seaborn文档一段时间,但是我无法正确地做到这一点。我的期望输出类似于这个图像。对不起,我的书写看起来很糟糕,我不知道怎么使用画图工具。因此,每张图的刻度和数字都在右侧。线图将通过每个x,y点的点连接。所以对于Cabin A,第一个x,y点是(10,0),其中0对应右侧的y轴。第二个点是(20,1),依此类推。
![enter image description here](https://istack.dev59.com/HAMCe.webp)