python实现时序图:
有些时候,我们需要使用python进行实现一些脚本分析工具。比如时序图分析,就是能够通过图示的方法清晰的反映函数调用的时序,进而可以精准知道程序的执行流程。
以下提供了一个展现时序图的python实现代码,可供各位参考使用:
import matplotlib.pyplot as plt
def plot_sequence_diagram(lines_list, lines_names, title, x_lable, y_lable, save_path):
if len(lines_list) == 0 or len(lines_list) != len(lines_names):
return
for n in range(len(lines_list)):
line_list = lines_list[n]
x_list = []
y_list = []
for m in range(len(line_list)):
x_list.append(line_list[m])
y_list.append([n+10,n+10])
for i in range(len(x_list)):
plt.scatter(x_list[i], y_list[i], color='black', s=5)
plt.plot(x_list[i], y_list[i])
plt.annotate(s='%s'%(lines_names[n]),xy=(x_list[i][0],y_list[i][0]),xytext=(x_list[i][0],y_list[i][0]-5),\
weight='bold',color='aqua',arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'),\
bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='k',lw=1 ,alpha=0.4))
plt.grid(True)
plt.xlim(0,100)
plt.ylim(0,16)
plt.title(title)
plt.xlabel(x_lable)
plt.ylabel(y_lable)
plt.savefig("%s%s.jpg"%(save_path, title))
plt.close()
if __name__ == '__main__':
p1 = [[10, 20], [50, 60]]
p2 = [[21, 31], [61, 71]]
p3 = [[32, 42], [82, 92]]
lines_list = [p1,p2,p3]
plot_sequence_diagram(lines_list, ['p1','p2','p3'], "title", "x_lable", "y_lable", 'C:/Users/xt/Desktop/test/')
执行的效果图如下: