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

      <tfoot id='kHNH0'></tfoot>
      <legend id='kHNH0'><style id='kHNH0'><dir id='kHNH0'><q id='kHNH0'></q></dir></style></legend>
        <bdo id='kHNH0'></bdo><ul id='kHNH0'></ul>

        绘制直方图,使总高度等于1

        Plot a histogram such that the total height equals 1(绘制直方图,使总高度等于1)
      1. <i id='rFPHa'><tr id='rFPHa'><dt id='rFPHa'><q id='rFPHa'><span id='rFPHa'><b id='rFPHa'><form id='rFPHa'><ins id='rFPHa'></ins><ul id='rFPHa'></ul><sub id='rFPHa'></sub></form><legend id='rFPHa'></legend><bdo id='rFPHa'><pre id='rFPHa'><center id='rFPHa'></center></pre></bdo></b><th id='rFPHa'></th></span></q></dt></tr></i><div id='rFPHa'><tfoot id='rFPHa'></tfoot><dl id='rFPHa'><fieldset id='rFPHa'></fieldset></dl></div>

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

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

              <legend id='rFPHa'><style id='rFPHa'><dir id='rFPHa'><q id='rFPHa'></q></dir></style></legend>
                  <tbody id='rFPHa'></tbody>
              • <tfoot id='rFPHa'></tfoot>
                • 本文介绍了绘制直方图,使总高度等于1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  这是answer的后续问题。我正在尝试绘制归一化直方图,但得到的不是y轴上的最大值1,而是不同的数字。

                  对于数组k=(1,4,3,1)

                   import numpy as np
                  
                   def plotGraph():
                     
                      import matplotlib.pyplot as plt
                      
                      k=(1,4,3,1)
                  
                      plt.hist(k, normed=1)
                  
                      from numpy import *
                      plt.xticks( arange(10) ) # 10 ticks on x axis
                  
                      plt.show()  
                      
                  plotGraph()
                  

                  我得到这个直方图,它看起来不像是规格化的。

                  对于不同的数组,k=(3,3,3,3)

                   import numpy as np
                  
                   def plotGraph():
                     
                      import matplotlib.pyplot as plt
                      
                      k=(3,3,3,3)
                  
                      plt.hist(k, normed=1)
                  
                      from numpy import *
                      plt.xticks( arange(10) ) # 10 ticks on x axis
                  
                      plt.show()  
                      
                  plotGraph()
                  

                  我得到的直方图的最大y值为10。

                  对于不同的k,即使Normded=1或Normed=True,我也会获得不同的y的最大值。

                  为什么规范化(如果有效)会根据数据进行更改,以及如何使y的最大值等于1?

                  更新:

                  我正在尝试实现来自plotting histograms whose bar heights sum to 1 in matplotlib的Carsten Knig答案,但得到非常奇怪的结果:

                  import numpy as np
                  
                  def plotGraph():
                  
                      import matplotlib.pyplot as plt
                  
                      k=(1,4,3,1)
                  
                      weights = np.ones_like(k)/len(k)
                      plt.hist(k, weights=weights)
                  
                      from numpy import *
                      plt.xticks( arange(10) ) # 10 ticks on x axis
                  
                      plt.show()  
                  
                  plotGraph()
                  

                  结果:

                  我做错了什么?

                  推荐答案

                  绘制归一化直方图时,曲线下的面积总和应为1,而不是高度。

                  In [44]:
                  
                  import matplotlib.pyplot as plt
                  k=(3,3,3,3)
                  x, bins, p=plt.hist(k, density=True)  # used to be normed=True in older versions
                  from numpy import *
                  plt.xticks( arange(10) ) # 10 ticks on x axis
                  plt.show()  
                  In [45]:
                  
                  print bins
                  [ 2.5  2.6  2.7  2.8  2.9  3.   3.1  3.2  3.3  3.4  3.5]
                  

                  在此示例中,箱宽为0.1,曲线下面的面积总和为1(0.1*10)。

                  x存储每个垃圾箱的高度。p存储每个单独的存储箱对象(实际上,它们是patches。因此,我们只需汇总x并修改每个bin对象的高度。

                  若要使高度之和为1,请在plt.show()之前添加以下内容:

                  for item in p:
                      item.set_height(item.get_height()/sum(x))
                  

                  这篇关于绘制直方图,使总高度等于1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

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

                  相关文档推荐

                  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='0Vm6N'></bdo><ul id='0Vm6N'></ul>

                      <tbody id='0Vm6N'></tbody>

                      • <small id='0Vm6N'></small><noframes id='0Vm6N'>

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