python (matplotlib) 으로 몇 개의 직선을 그리다

17202 단어 Pythonmatplotlib
개시하다
나는pythn으로 몇 개의 직선을 그리고 싶지만 아무리 해도 좋은 방법을 찾지 못하고 자신의 방법을 여기에 총결하였다.
기계를 사용하다
  • MacBook Air
  • Jupyter notebook
  • 이루어지다
    실제로 해봤어요.
    number_line.py
    
    import numpy as np
    import matplotlib.pyplot as plt
    import pylab
    %matplotlib inline
    
    #テキトーな配列を生成
    rand_size = 7 #配列のサイズ
    rand = np.random.random_sample(rand_size) #テキトーな配列を生成
    print(rand)
    rand = sorted(rand) #ソート
    y = [0]*rand_size #y=0
    
    #数直線
    fig,ax=plt.subplots(figsize=(10,10)) #画像サイズ
    fig.set_figheight(1) #高さ調整
    ax.tick_params(labelbottom=True, bottom=False) #x軸設定
    ax.tick_params(labelleft=False, left=False) #y軸設定
    
    xmin, xmax= 0,1 #数直線の最小値・最大値
    plt.tight_layout() #グラフの自動調整
    plt.scatter(rand,y,c='r') #散布図
    plt.hlines(y=0,xmin=xmin,xmax=xmax) #横軸
    plt.vlines(x=[i for i in range(xmin,xmax+1,1)],ymin=-0.04,ymax=0.04) #目盛り線(大)
    plt.vlines(x=[i/10 for i in range(xmin*10,xmax*10+1,1)],ymin=-0.02,ymax=0.02) #目盛り線(小)
    line_width=0.1#目盛り数値の刻み幅
    plt.xticks(np.arange(xmin,xmax+line_width,line_width)) #目盛り数値
    pylab.box(False) #枠を消す
    
    
    ↓ 이렇게 된 느낌↓

    여러 선의 값을 표시합니다.
    여러 선의 값을 표시합니다...
    number_line2.py
    
    import numpy as np
    import matplotlib.pyplot as plt
    import pylab
    %matplotlib inline
    
    #テキトーな配列を生成
    rand_size = 7 #配列のサイズ
    rand = np.random.random_sample(rand_size) #テキトーな配列を生成
    print(rand)
    rand = sorted(rand) #ソート
    y = [0]*rand_size #y=0
    
    #数直線
    fig,ax=plt.subplots(figsize=(10,10)) #画像サイズ
    fig.set_figheight(1) #高さ調整
    ax.tick_params(labelbottom=True, bottom=False) #x軸設定
    ax.tick_params(labelleft=False, left=False) #y軸設定
    
    #数直線上の数値を表示
    for i in range(int(rand_size/2)+1):
        ax.annotate('{0:.3f}'.format(rand[2*i]),
                     xy=(rand[2*i],y[2*i]),
                     xytext=(10, 20),
                     textcoords='offset points',
                     arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.3")
                    )
    
    for i in range(int(rand_size/2)):
        ax.annotate('{0:.3f}'.format(rand[2*i+1]),
                     xy=(rand[2*i+1],y[2*i+1]),
                     xytext=(10, -50),
                     textcoords='offset points',
                     arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=-.3")
                    )
    
    xmin, xmax= 0,1 #数直線の最小値・最大値
    plt.tight_layout() #グラフの自動調整
    plt.scatter(rand,y,c='r') #散布図
    plt.hlines(y=0,xmin=xmin,xmax=xmax) #横軸
    plt.vlines(x=[i for i in range(xmin,xmax+1,1)],ymin=-0.04,ymax=0.04) #目盛り線(大)
    plt.vlines(x=[i/10 for i in range(xmin*10,xmax*10+1,1)],ymin=-0.02,ymax=0.02) #目盛り線(小)
    line_width=0.1#目盛り数値の刻み幅
    plt.xticks(np.arange(xmin,xmax+line_width,line_width)) #目盛り数値
    pylab.box(False) #枠を消す
    
    
    ↓ 이렇게 된 느낌↓

    끝말
    도서관에 한 번에 직선을 몇 개 그릴 수는 없죠...?
    만약 다른 좋은 방법이 있다면 교수님을 청합니다...

    좋은 웹페이지 즐겨찾기