Python 주파수 분포 직사 도 예제 그리 기

프로젝트 에서 초기 에 데이터 의 분포 상황 을 자주 봐 야 하 는데 이것 은 데이터 규칙 을 탐구 하 는 데 매우 유용 하 다.확률 분 포 는 견본 데이터 의 모양 을 나타 내 고 예 쁘 게 생 겼 는 지 이미지 가 있 으 면 완벽 하 다.Python 으로 주파수 분포 직사 도 를 그 리 는 것 은 매우 간결 하 다.사용 빈도 가 매우 높 기 때문에 여기에 기록 된다.역시 Python 대 법 이 좋 습 니 다.코드 가 간결 하고 꾸 물 거리 지 않 습 니 다~
만약 에 데이터 의 수치 범위 가 크 지 않 으 면 등 폭 구간 으로 직사 도 를 보 여 주 는 것 도 가장 흔히 볼 수 있 는 것 이다.데이터 수치 범위 가 비교적 넓 으 면 구간 점 을 사용자 정의 하여 그림 을 그 릴 수 있 으 며,아래 는 두 가지 상황 으로 나 누 어 보 여 줍 니 다.
1.구간 길이 동일 하 게 직사 도 그리 기

#-*- encoding=utf-8 -*-
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')


#                  
# bins_interval      
# margin                 
def probability_distribution(data, bins_interval=1, margin=1):
  bins = range(min(data), max(data) + bins_interval - 1, bins_interval)
  print(len(bins))
  for i in range(0, len(bins)):
    print(bins[i])
  plt.xlim(min(data) - margin, max(data) + margin)
  plt.title("probability-distribution")
  plt.xlabel('Interval')
  plt.ylabel('Probability')
  plt.hist(x=data, bins=bins, histtype='bar', color=['r'])
  plt.show()

2.구간 길이 에 따라 직사 도 그리 기

#-*- encoding=utf-8 -*-
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc'

#       ,                     ,                 
# bins              
# margin               
# label             
"""e
  import numpy as np
  data = np.random.normal(0, 1, 1000)
  bins = np.arange(-5, 5, 0.1)
  probability_distribution_extend(data=data, bins=bins)
"""
def probability_distribution_extend(data, bins, margin=1, label='Distribution'):
  bins = sorted(bins)
  length = len(bins)
  intervals = np.zeros(length+1)
  for value in data:
    i = 0
    while i < length and value >= bins[i]:
      i += 1
    intervals[i] += 1
  intervals = intervals / float(len(data))
  plt.xlim(min(bins) - margin, max(bins) + margin)
  bins.insert(0, -999)
  plt.title("probability-distribution")
  plt.xlabel('Interval')
  plt.ylabel('Probability')
  plt.bar(bins, intervals, color=['r'], label=label)
  plt.legend()
  plt.show()
사례 예시

if __name__ == '__main__':
  data = [1,4,6,7,8,9,11,11,12,12,13,13,16,17,18,22,25]
  probability_distribution(data=data, bins_interval=5,margin=0)
효 과 는 아래 그림 과 같다.

이상 파 이 썬 이 주파수 분포 직사 도 를 그 리 는 예 는 바로 소 편 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기