Python 데이터 시각 화 튜 토리 얼 의 Matplotlib 는 각종 도표 인 스 턴 스 를 실현 합 니 다.

11568 단어 pythonmatplotlib도표
머리말
데이터 분석 은 데 이 터 를 각종 도표 의 형식 으로 지도자 에 게 보 여 주 고 지도자 가 결정 할 수 있 도록 하 는 것 이기 때문에 떡 그림,기둥 모양 그림,선도 등 도표 제작 을 능숙 하 게 파악 하 는 것 은 데이터 분석가 에 게 필수 적 인 기능 이다.Python 은 Matplotlib 와 Pyechart 두 가지 훌륭 한 도표 제작 프레임 워 크 가 있 습 니 다.본 고 는 주로 Matplotlib 를 이용 하여 각종 데이터 도 표를 만 드 는 것 을 다 루 고 있다.
Matplotlib 는 2D 데이터 그래프 를 그 리 는 데 가장 유행 하 는 Python 라 이브 러 리 로 다양한 플랫폼 에서 사용 할 수 있 으 며 산 점도,막대 그래프,떡 그림 등 을 그 릴 수 있다.
1.막대 그래프
긴 사각형 이나 긴 사각형 의 높이 를 변수 로 하 는 표현 도형 의 통계 보고서 그림 으로 일련의 높이 가 다른 세로 줄무늬 가 데이터 분 포 를 나타 내 는 상황 에서 두 개 이상 의 가치(서로 다른 시간 또는 서로 다른 조건)를 비교 하 는 데 사용 되 고 하나의 변수 만 있 으 며 비교적 작은 데이터 세트 분석 에 사용 된다.기둥 모양 도 는 데이터 간 의 얼 마 를 비교 할 수 있 고 특정한 사건 의 변화 추 세 를 관찰 할 수 있 으 며 기둥 모양 도 가로로 배열 하거나 다 차원 방식 으로 표현 할 수 있다.
구현 코드:

#       
import matplotlib.pyplot as plt
#     
sales = [7125,12753,13143,8635]

#        ,rcParams            ,     
plt.rcParams['font.sans-serif'] =['SimHei']
plt.rcParams['axes.unicode_minus'] = False

#   ,      x    ,      y    ,           ,    1(  0 1  ),color      ,alpha       
plt.bar(range(4), sales, 0.4,color='r', alpha = 0.8)
#      
plt.ylabel('  ')
#     
plt.title('  2018    ')
#       
plt.xticks(range(4),['  ','  ',' ','   '])
#   Y      
plt.ylim([5000,15000])

#             
for x,y in enumerate(sales):
 plt.text(x,y+100,'%s' %y,ha='center')

#     
plt.show()
효과 그림:

막대 그래프 를 그 리 는 함수 bar()를 barh()로 바 꾸 면 막대 그래프 의 직사각형 이나 직사각형 을 수직 방향 에서 수평 방향 으로 바 꿀 수 있 습 니 다.
구현 코드:

#       
import matplotlib.pyplot as plt
#     
sales = [7125,12753,13143,8635]

#        
plt.rcParams['font.sans-serif'] =['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = ['  ','  ',' ','   ']
#   
plt.barh(range(4), sales, 0.4,color='r', alpha = 0.8)
#      
plt.ylabel('  ')
#     
plt.title('  2018    ')
#       
plt.yticks(range(4),['  ','  ',' ','   '])
#   Y      
plt.xlim([5000,15000])

#             
for x,y in enumerate(sales):
 plt.text(y+0.2,x,'%s' %y,va='center')

#     
plt.show()
효과 그림:

bar()함수 가 barh()로 변 하 는 것 을 제외 하고.또 다른 몇 가지 부분 은 수정 해 야 합 니 다.각 막대 그래프 에 수치 라벨 을 추가 할 때 ha='center'를 va='center'로 바 꾸 고 x 축 라벨 을 추가 하 는 방법 을 xlabel 에서 ylabel 로 바 꿉 니 다.
기둥 모양 그림 과 접 는 선 그림 을 혼합 하여 사용 하 다.
기둥 모양 도 는 접 는 선 그림 과 혼합 하여 사용 할 수 있 으 며,어떤 데이터 의 변화 추 세 를 나타 내 는 데 사용 된다.다음은 예 를 들 어 기둥 모양 도 는 과일의 연간 판 매 량 을 나타 내 고,접 는 선 도 는 과일의 1 월 판 매 량 을 나타 낸다.
코드:

#       
import matplotlib.pyplot as plt

jan_sales = [3010,4029,5021,3056]
#     
sales = [7125,12753,13143,8635]


#        
plt.rcParams['font.sans-serif'] =['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = ['  ','  ',' ','   ']

plt.plot(x,jan_sales,'r')#    1 x 2 y 3 color
plt.plot(x,jan_sales,'g',lw=5)# 4 line w

#   
plt.bar(range(4), sales, 0.4,color='b', alpha = 0.8)
#      
plt.ylabel('  ')
#     
plt.title('  2018    ')
#       
plt.xticks(range(4),['  ','  ',' ','   '])
#   Y      
plt.ylim([2000,15000])

#             
for x,y in enumerate(sales):
 plt.text(x,y+100,'%s' %y,ha='center')

#     
plt.show()
효과 그림:

2.접선 도
접선 도 는 주로 데이터 변화의 추 세 를 나타 내 는 데 쓰 인 다.접 는 선 도 는 직선 으로 서로 다른 점 을 연결 하 는 것 이다.

#       
import matplotlib.pyplot as plt

#    
jan_sales = [3010,4029,5021,3056]


#        
plt.rcParams['font.sans-serif'] =['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = ['  ','  ',' ','   ']

#      x ,     y   ,          ,           
plt.plot(x,jan_sales,'r',lw=5)# 4 line w

#     
plt.title('  2018  1     ')
plt.ylim([2000,15000])

#           
for x,y in enumerate(jan_sales):
 plt.text(x,y+100,'%s' %y,ha='center')

#     
plt.show()
효과 그림:

접 는 선 도 는 plot()방법 으로 그립 니 다.
3.떡 그림
떡 그림 은 주로 데이터 의 비례 를 나타 내 는데 사람들 에 게 한눈 에 데이터 의 비례 크기 를 알 수 있다.떡 그림 은 pie()함수 로 그립 니 다.

import matplotlib.pyplot as plt

#          (    R  ggplot  )
plt.style.use('ggplot')

#     
edu = [0.2515,0.3724,0.3336,0.0368,0.0057]
labels = ['  ','  ',' ','   ','  ']

explode = [0,0.1,0,0,0] #             
colors=['#FEB748','#EDD25D','#FE4F54','#51B4FF','#dd5555'] #      

#              
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

#   、         ,         ,     
plt.axes(aspect='equal')

#   x  y    
plt.xlim(0,4)
plt.ylim(0,4)

#     
plt.pie(x = edu,#     
 explode=explode, #         
 labels=labels, #           
 colors=colors, #            
 autopct='%.1f%%', #         ,        
 pctdistance=0.8,#              
 labeldistance = 1.15, #               
 startangle = 180, #          
 radius = 1.5, #        
 counterclock = False, #      ,          
 wedgeprops = {'linewidth': 1.5, 'edgecolor':'green'},#             
 textprops = {'fontsize':12, 'color':'k'}, #           
 center = (1.8,1.8), #        
 frame = 1)#          ,      

#   x  y    
plt.xticks(())
plt.yticks(())
#      
plt.title('2018       ')

#     
plt.show()
효과 그림:

pie 함수 인 자 를 간단하게 소개 합 니 다:
  • x:그림 을 그 리 는 데 이 터 를 지정 합 니 다
  • explode:지 정 된 떡 그림 의 일부 부분의 돌출 디 스 플레이,즉 폭발 식
  • labels:떡 그림 에 라벨 설명 을 추가 하고 그림 설명 과 유사 합 니 다
  • colors:떡 그림 의 충전 색 을 지정 합 니 다
  • autopct:백분율 형식 을 설정 합 니 다.예 를 들 어'%.1f%%'는 소수
  • 를 유지 합 니 다.
  • shadow:떡 그림 의 그림자 효과 추가 여부
  • pctdistance:백분율 라벨 과 원심 의 거 리 를 설정 합 니 다
  • labeldistance:각 부채 형 태그(그림)와 원심 의 거 리 를 설정 합 니 다.
  • startangle:떡 그림 의 초기 배치 각 도 를 설정 하고 180 을 수평 으로 합 니 다.
  • radius:떡 그림 의 반지름 크기 를 설정 합 니 다.
  • conterclock:떡 그림 을 시계 반대 방향 으로 보 여 줄 지 여부,True/False;
  • wedgeprops:떡 그림 내외 경계 속성 을 설정 합 니 다.예 를 들 어 경계선 의 굵기,색상 등 입 니 다.예 를 들 어 wedgeprops={'linewidth':1.5,'edgecolor':'green'}
  • textprops:글꼴 크기,색상 등 텍스트 의 속성 을 설정 합 니 다.
  • center:떡 그림 의 중심 점 위 치 를 지정 하고 기본 값 은 원점
  • 입 니 다.
  • frame:떡 그림 뒤의 그림 상 자 를 표시 할 지 여부 입 니 다.True 로 설정 하면 그림 상자 x 축,y 축의 범위 와 떡 그림 의 중심 위 치 를 동시에 제어 해 야 합 니 다.
  • 4.산포도
    산 점도 의 주요 역할 은 두 변수 간 의 관계 의 강약 이나 관계 가 있 는 지 를 판단 하 는 것 이다.
    산 점 도 는 scatter()방법 으로 그립 니 다.
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    #     
    n = 50
    #    0,    1    
    x = np.random.normal(0, 1, n)
    y = np.random.normal(0, 1, n)
    
    #      
    color = np.arctan2(y, x)
    #      
    plt.scatter(x, y, s = 75, c = color, alpha = 0.5)
    #        
    plt.xlim((-1.5, 1.5))
    plt.ylim((-1.5, 1.5))
    
    #         
    plt.xticks(([-1,0,1,2,3,4]))
    plt.yticks(([-1,0,1,2,3,4]))
    
    plt.show()
    효과 그림:

    5.상자 선도
    상자 선 도 는 보통 데이터 의 크기,비례,추세 등 을 나타 내 는데 통계학 의 평균 값,분 위수,극치 등 통 계량 을 포함한다.따라서 이 그림 의 정 보 량 이 비교적 많 기 때문에 서로 다른 유형의 데이터 평균 수준 차 이 를 분석 할 수 있 을 뿐만 아니 라 데이터 간 의 이산 정도,이상 치,분포 차이 등 도 밝 힐 수 있다.
    boxplot()방법 으로 그립 니 다.
    
    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    np.random.seed(2) #      
    df = pd.DataFrame(np.random.rand(5,4),
    columns=['A', 'B', 'C', 'D'])#   0-1   5*4    ,   4 DataFrame 
    df.boxplot() #   plot.box()
    plt.show()
    효과 그림:

    6.레 다 투
    레이더 도 는 주기 적 인 수치의 변 화 를 나 타 낼 수도 있 고 대상/차원 간 의 관 계 를 나 타 낼 수도 있다.
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    #  
    labels = np.array(['  ','  ','  ','  ','  ','  '])
    #    
    dataLenth = 6
    #  
    data = np.array([7,4,3,6,4,8])
    
    angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
    data = np.concatenate((data, [data[0]])) #   
    angles = np.concatenate((angles, [angles[0]])) #   
    
    fig = plt.figure()
    ax = fig.add_subplot(111, polar=True)# polar  !!
    ax.plot(angles, data, 'bo-', linewidth=2)#   
    ax.fill(angles, data, facecolor='r', alpha=0.25)#   
    ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")
    ax.set_title("matplotlib   ", va='bottom', fontproperties="SimHei")
    ax.set_rlim(0,10)
    ax.grid(True)
    plt.show()
    효과 그림:

    7.기포 도
    기포 도 는 세 변수 사이 에 어떤 관계 가 있 는 지 판단 하 는 데 쓰 인 다.그것 은 산 점도 와 약간 유사 하지만,기포 도 는 기포 크기 를 새로운 차원 으로 할 뿐이다.
    
    import pandas as pd
    import matplotlib.pyplot as plt
    import pandas as pd
    
    d = {"  ":pd.Series([2006,2007,2008,2009,2010]),
      "  ":pd.Series([10,200,120,150,300]),
      "  ":pd.Series([50,130,40,50,160]),
      "  ":pd.Series([1,2,0,1,2]),
      "  ":pd.Series([True,True,True,True,True])}
    
    df=pd.DataFrame(d)
    
    #       ,rank             ,           
    #n    ,         ,    
    
    size=df['  '].rank()
    n=20
    
    #      ,             
    
    color={0:'red',1:'blue',2:'orange'}
    
    #  color   ,       data                color    
    
    plt.scatter(df['  '],df['  '],color=[color[i] for i in df['  ']],s=size*n,alpha=0.6)
    plt.show()
    효과 그림:

    기포 도 는 산 점도 와 마찬가지 로 scatter 방법 으로 그립 니 다.차이 점 은 점 의 크기 가 다 르 고 산 점도 의 점 은 모두 같 으 며 기포 도 점 의 크기 는 다르다 는 것 이다.
    이상 은 기둥 모양 도,산 점도,기포 도,접 는 선도 의 실현 방식 이다.모두 에 게 도움 이 되 기 를 바 랍 니 다.
    총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기