<legend id='7MHiJ'><style id='7MHiJ'><dir id='7MHiJ'><q id='7MHiJ'></q></dir></style></legend>
<tfoot id='7MHiJ'></tfoot>

      <bdo id='7MHiJ'></bdo><ul id='7MHiJ'></ul>

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

      <small id='7MHiJ'></small><noframes id='7MHiJ'>

      海运HISPLOT和DISPLOT输出不匹配

      时间:2024-08-20

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

              1. <legend id='KQ4EE'><style id='KQ4EE'><dir id='KQ4EE'><q id='KQ4EE'></q></dir></style></legend>

              2. 本文介绍了海运HISPLOT和DISPLOT输出不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                • seaborn.histplotseaborn.displot生成的直方图不匹配。
                  • sns.displot的默认绘图为kind='hist'
                • 使用python3.8.11seaborn 0.11.2matplotlib 3.4.2
                • 测试
                • 为什么输出不匹配,如何解决此问题?
                • 期望是,给定bins,相应曲线图的density应该匹配。
                  • bins传递给numpy.histogram_bin_edges
                • Visualizing distributions of data中包含的信息不能解决问题。
                import seaborn as sns
                import matplotlib.pyplot as plt
                
                # sample data: wide
                dfw = sns.load_dataset("penguins", cache=False)[['bill_length_mm', 'bill_depth_mm']].dropna()
                
                # sample data: long
                dfl = dfw.melt(var_name='bill_size', value_name='vals')
                

                seaborn.displot

                1. 忽略'sharex': False,但'sharey'工作
                2. 忽略bins
                fg = sns.displot(data=dfl, x='vals', col='bill_size', kde=True, stat='density', bins=12, height=4, facet_kws={'sharey': False, 'sharex': False})
                plt.show()
                

                1. 设置xlim没有影响
                fg = sns.displot(data=dfl, x='vals', col='bill_size', kde=True, stat='density', bins=12, height=4, facet_kws={'sharey': False, 'sharex': False})
                axes = fg.axes.ravel()
                axes[0].set_xlim(25, 65)
                axes[1].set_xlim(13, 26)
                plt.show()
                

                seaborn.histplot

                fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))
                
                sns.histplot(data=dfw.bill_length_mm, kde=True, stat='density', bins=12, ax=ax1)
                sns.histplot(data=dfw.bill_depth_mm, kde=True, stat='density', bins=12, ax=ax2)
                fig.tight_layout()
                plt.show()
                

                更新

                • 按照mwaskom的建议,common_bins=False使直方图形状一致,解决了忽略binssharex的问题。但是,density似乎受到displot中绘图数量的影响。
                  • 如果displot中有3个地块,则密度为histplot中的1/3;2个地块,密度为1/2。

                推荐答案

                • 按照mwaskom在评论中的建议,common_bins=False将直方图调整为相同的形状,解决了忽略binssharex的问题,并且分面图中的density是根据每个分面中的数据点的数量而不是分面的数量进行缩放的。
                • densitydisplot中的绘图数量拆分的问题通过使用common_norm=False
                • 解决

                打印代码

                # displot
                fg = sns.displot(data=dfl, x='vals', col='bill_size', kde=True, stat='density', bins=12, height=4,
                                 facet_kws={'sharey': False, 'sharex': False}, common_bins=False, common_norm=False)
                
                fg.fig.subplots_adjust(top=0.85)
                fg.fig.suptitle('Displot with common_bins & common_norm as False')
                plt.show()
                
                # histplot
                fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))
                
                sns.histplot(data=dfw.bill_length_mm, kde=True, stat='density', bins=12, ax=ax1)
                sns.histplot(data=dfw.bill_depth_mm, kde=True, stat='density', bins=12, ax=ax2)
                
                fig.subplots_adjust(top=0.85)
                fig.suptitle('Histplot')
                
                fig.tight_layout()
                plt.show()
                

                这篇关于海运HISPLOT和DISPLOT输出不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:将字符串数据传递给matplotlib API时会绘制什么? 下一篇:如何在海运直方图上添加标准普通pdf

                相关文章

              3. <small id='Ir85D'></small><noframes id='Ir85D'>

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

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

                    <legend id='Ir85D'><style id='Ir85D'><dir id='Ir85D'><q id='Ir85D'></q></dir></style></legend>
                    <tfoot id='Ir85D'></tfoot>