Python `sns.scatterplot`类似于sns.catplot中的子图`
我只想在一个图中绘制部分数据,该图由多个值(Python `sns.scatterplot`类似于sns.catplot中的子图`,python,seaborn,subplot,Python,Seaborn,Subplot,我只想在一个图中绘制部分数据,该图由多个值(环境,方法,费用)表示。 该图应包含两个子图,显示变化环境中的能量差异。 我想结合子地块的属性,比如 sns.catplot (data = data, x = 'base', y = 'energy', hue = 'charge', col = 'environment', order = ['A', 'T', 'U1', '', 'G', 'C', 'U2'], jitter = False) 允许,但标记应因不同的方法而不同,类似于sns.s
环境
,方法
,费用
)表示。
该图应包含两个子图,显示变化环境中的能量差异。我想结合子地块的属性,比如
sns.catplot (data = data, x = 'base', y = 'energy', hue = 'charge', col = 'environment', order = ['A', 'T', 'U1', '', 'G', 'C', 'U2'], jitter = False)
允许,但标记应因不同的方法而不同,类似于sns.scatterplot
的情况
MWE
导入matplotlib.pyplot作为plt
导入matplotlib
导入seaborn作为sns
作为pd进口熊猫
导入操作系统
sns.set(样式=白色,颜色代码=真,调色板=[“FF0000”、“000FFF”、“00FF00”、“FF8000”、“00FFFF”、“FF00FF”、“FF00”)
matplotlib.rcParams['axes.xmargin']=.1
matplotlib.rcParams['axes.ymargin']=.1
matplotlib.spines.rcParams['axes.spines.right']=False
matplotlib.spines.rcParams['axes.spines.top']=False
matplotlib.rcParams['xtick.bottom']=False
matplotlib.rcParams['ytick.left']=True
将open(os.path.join(os.environ['HOME'],'Data.csv'),'r')作为f:
data=pd.read\u csv(f,index\u col=0,header=head,数千=None,decimal='.'))
data['charge']=data['charge'].map({'neu':'neutral','neg':'negative','pos':'positive'})
data=data.sort_值(['charge'、'base'、'environment'])
Data=sns.scatterplot(Data=Data,x=base,y=energy,hue=charge,markers=['o','D'],style='method',size=environment',size=[20,40],legend=full')
数据。图例。设置为锚((1,0.95))
Data.legend\uu.set\u frame\u on(错误)
~/Data.csv
如果我没有弄错,那么您可以在环境中使用FaceGrid和facet:
g = sns.FacetGrid(data, col="environment",sharex=False,sharey=False)
g.map_dataframe(sns.scatterplot,
x = "base",
y = "energy",
hue = "charge",
style = "method",
markers = ['o', 'D']
)
g.add_legend()
图例的格式似乎有所不同。您能否调整您的答案,使图例(即缩进、副标题大小等)获得“seaborn的默认格式”(就像我的MWE一样)?是否有一条捷径可以将图例的seaborn样式作为默认样式(在matplotlib设置上)?
g = sns.FacetGrid(data, col="environment",sharex=False,sharey=False)
g.map_dataframe(sns.scatterplot,
x = "base",
y = "energy",
hue = "charge",
style = "method",
markers = ['o', 'D']
)
g.add_legend()