Generating smooth line graph using matplotlib

前端 未结 1 1151
刺人心
刺人心 2020-12-02 23:54

Following is the python script to generate a plot using matplotlib.

#!/usr/bin/python

import matplotlib.pyplot as plt
import time
import numpy as np
from s         


        
相关标签:
1条回答
  • 2020-12-03 00:28

    I got this working! Thanks for the comments. Here is the updated code.

    #!/usr/bin/python
    
    import matplotlib.pyplot as plt
    import time
    import numpy as np
    from scipy.interpolate import spline
    
    # Local variables
    x = []
    y = []
    
    # Open the data file for reading lines
    datafile = open('testdata1.txt', 'r')
    sepfile = datafile.read().split('\n')
    datafile.close()
    
    # Create a canvas to place the subgraphs
    canvas = plt.figure()
    rect = canvas.patch
    rect.set_facecolor('white')
    
    # Iterate through the lines and parse them
    for datapair in sepfile:
        if datapair:
            xypair = datapair.split(' ')
            x.append(int(xypair[1]))
            y.append(int(xypair[3]))
    
    x_sm = np.array(x)
    y_sm = np.array(y)
    
    x_smooth = np.linspace(x_sm.min(), x_sm.max(), 200)
    y_smooth = spline(x, y, x_smooth)
    
    # Define the matrix of 1x1 to place subplots
    # Placing the plot1 on 1x1 matrix, at pos 1
    sp1 = canvas.add_subplot(1,1,1, axisbg='w')
    #sp1.plot(x, y, 'red', linewidth=2)
    sp1.plot(x_smooth, y_smooth, 'red', linewidth=1)
    
    # Colorcode the tick tabs 
    sp1.tick_params(axis='x', colors='red')
    sp1.tick_params(axis='y', colors='red')
    
    # Colorcode the spine of the graph
    sp1.spines['bottom'].set_color('r')
    sp1.spines['top'].set_color('r')
    sp1.spines['left'].set_color('r')
    sp1.spines['right'].set_color('r')
    
    # Put the title and labels
    sp1.set_title('matplotlib example 1', color='red')
    sp1.set_xlabel('matplot x label', color='red')
    sp1.set_ylabel('matplot y label', color='red')
    
    # Show the plot/image
    plt.tight_layout()
    plt.grid(alpha=0.8)
    plt.savefig("example6.eps")
    plt.show()
    

    New plot looks like this.

    enter image description here

    0 讨论(0)
提交回复
热议问题