<legend id='l3IiD'><style id='l3IiD'><dir id='l3IiD'><q id='l3IiD'></q></dir></style></legend>
<i id='l3IiD'><tr id='l3IiD'><dt id='l3IiD'><q id='l3IiD'><span id='l3IiD'><b id='l3IiD'><form id='l3IiD'><ins id='l3IiD'></ins><ul id='l3IiD'></ul><sub id='l3IiD'></sub></form><legend id='l3IiD'></legend><bdo id='l3IiD'><pre id='l3IiD'><center id='l3IiD'></center></pre></bdo></b><th id='l3IiD'></th></span></q></dt></tr></i><div id='l3IiD'><tfoot id='l3IiD'></tfoot><dl id='l3IiD'><fieldset id='l3IiD'></fieldset></dl></div>
  • <tfoot id='l3IiD'></tfoot>
  • <small id='l3IiD'></small><noframes id='l3IiD'>

      <bdo id='l3IiD'></bdo><ul id='l3IiD'></ul>

        如何将平均线和中线添加到海运地块

        How to add a mean and median line to a Seaborn displot(如何将平均线和中线添加到海运地块)
          <tbody id='Z75eJ'></tbody>
              <bdo id='Z75eJ'></bdo><ul id='Z75eJ'></ul>

              <i id='Z75eJ'><tr id='Z75eJ'><dt id='Z75eJ'><q id='Z75eJ'><span id='Z75eJ'><b id='Z75eJ'><form id='Z75eJ'><ins id='Z75eJ'></ins><ul id='Z75eJ'></ul><sub id='Z75eJ'></sub></form><legend id='Z75eJ'></legend><bdo id='Z75eJ'><pre id='Z75eJ'><center id='Z75eJ'></center></pre></bdo></b><th id='Z75eJ'></th></span></q></dt></tr></i><div id='Z75eJ'><tfoot id='Z75eJ'></tfoot><dl id='Z75eJ'><fieldset id='Z75eJ'></fieldset></dl></div>

                • <legend id='Z75eJ'><style id='Z75eJ'><dir id='Z75eJ'><q id='Z75eJ'></q></dir></style></legend>

                  <small id='Z75eJ'></small><noframes id='Z75eJ'>

                  <tfoot id='Z75eJ'></tfoot>
                  本文介绍了如何将平均线和中线添加到海运地块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  有没有办法将平均值和中位数与Seborn的displot相加?

                  penguins = sns.load_dataset("penguins")
                  g = sns.displot(
                      data=penguins, x='body_mass_g',
                      col='species',  
                      facet_kws=dict(sharey=False, sharex=False)
                  )
                  

                  基于Add mean and variability to seaborn FacetGrid distplots,我看到我可以定义FacetGrid并映射函数。我可以将自定义函数传递给displot吗?

                  尝试直接使用displot的原因是绘图开箱即用,无需调整刻度标签大小、轴标签大小等,并且在视觉上与我正在绘制的其他绘图一致。

                  def specs(x, **kwargs):
                      ax = sns.histplot(x=x)
                      ax.axvline(x.mean(), color='k', lw=2)
                      ax.axvline(x.median(), color='k', ls='--', lw=2)
                  
                  g = sns.FacetGrid(data=penguins, col='species')
                  g.map(specs,'body_mass_g' )
                  

                  推荐答案

                  • 不推荐直接使用FacetGrid。相反,可以使用其他图形级方法,如seaborn.displot
                    • seaborn.FacetGrid.map使用图形级方法。
                    • seaborn: Building structured multi-plot grids
                  • 测试于python 3.8.11pandas 1.3.2matplotlib 3.4.3seaborn 0.11.2

                  选项%1

                  • 使用plt.而不是ax
                    • 在OP中,vlines要为histplot创建ax,但这里的图形是在.map之前创建的。
                  penguins = sns.load_dataset("penguins")
                  g = sns.displot(
                      data=penguins, x='body_mass_g',
                      col='species',  
                      facet_kws=dict(sharey=False, sharex=False)
                  )
                  
                  def specs(x, **kwargs):
                      plt.axvline(x.mean(), c='k', ls='-', lw=2.5)
                      plt.axvline(x.median(), c='orange', ls='--', lw=2.5)
                  
                  g.map(specs,'body_mass_g' )
                  

                  选项2

                  • 此选项更详细,但更灵活,因为它允许从用于创建displot的数据源以外的数据源访问和添加信息。
                  import seaborn as sns
                  import pandas as pd
                  
                  # load the data
                  pen = sns.load_dataset("penguins")
                  
                  # groupby to get mean and median
                  pen_g = pen.groupby('species').body_mass_g.agg(['mean', 'median'])
                  
                  g = sns.displot(
                      data=pen, x='body_mass_g',
                      col='species',  
                      facet_kws=dict(sharey=False, sharex=False)
                  )
                  # extract and flatten the axes from the figure
                  axes = g.axes.flatten()
                  
                  # iterate through each axes
                  for ax in axes:
                      # extract the species name
                      spec = ax.get_title().split(' = ')[1]
                      
                      # select the data for the species
                      data = pen_g.loc[spec, :]
                      
                      # print data as needed or comment out
                      print(data)
                      
                      # plot the lines
                      ax.axvline(x=data['mean'], c='k', ls='-', lw=2.5)
                      ax.axvline(x=data['median'], c='orange', ls='--', lw=2.5)
                  

                  两个选项的输出

                  资源

                  • 另请参阅以下问题/答案,以了解将信息添加到海运FaceGrid的其他方式
                    • Draw a line at specific position/annotate a Facetgrid in seaborn
                    • Overlay a vertical line on seaborn scatterplot with multiple subplots
                    • How to add additional plots to a seaborn FacetGrid and specify colors

                  这篇关于如何将平均线和中线添加到海运地块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
                  Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
                  Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
                  Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
                  Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)
                  Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)

                      <bdo id='uju4E'></bdo><ul id='uju4E'></ul>

                    • <small id='uju4E'></small><noframes id='uju4E'>

                      <legend id='uju4E'><style id='uju4E'><dir id='uju4E'><q id='uju4E'></q></dir></style></legend>

                        <tfoot id='uju4E'></tfoot>
                        1. <i id='uju4E'><tr id='uju4E'><dt id='uju4E'><q id='uju4E'><span id='uju4E'><b id='uju4E'><form id='uju4E'><ins id='uju4E'></ins><ul id='uju4E'></ul><sub id='uju4E'></sub></form><legend id='uju4E'></legend><bdo id='uju4E'><pre id='uju4E'><center id='uju4E'></center></pre></bdo></b><th id='uju4E'></th></span></q></dt></tr></i><div id='uju4E'><tfoot id='uju4E'></tfoot><dl id='uju4E'><fieldset id='uju4E'></fieldset></dl></div>
                            <tbody id='uju4E'></tbody>