Python學習筆記—數據可視化之美(一)

Python學習筆記—數據可視化之美(一)的圖1

在大佬的強力推薦下,最近作者開始學習《Python數據可視化之美》這本書。通過之前的學習,大家可以掌握較為簡單的繪圖方法。那么如何將繪制的圖更加美觀的顯示出來呢?這也將是筆者學習的東西。接下來,讓我們開始學習的新篇章吧!!!

案例:

假設我們有四組數據,分別表示四組不同的正向骨架曲線(其結果在excel中顯示如下圖所示),那么怎么將結果一步步的美化呢?

Python學習筆記—數據可視化之美(一)的圖2

  • 首先,我們先在python中畫出該圖。代碼及結果如下:

import xlrdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falset = xlrd.open_workbook('美化數據.xls')sheet = t.sheet_by_index(0)x1_data=[] #需要將數據儲存在空列表中才可調用繪圖y1_data=[]x2_data=[]y2_data=[]x3_data=[]y3_data=[]x4_data=[]y4_data=[]for row in range(sheet.nrows):  content1 = sheet.cell_value(row,0)  x1_data.append(content1)  content2 = sheet.cell_value(row,1)  y1_data.append(content2)  content3 = sheet.cell_value(row,2)  x2_data.append(content3)  content4 = sheet.cell_value(row,3)  y2_data.append(content4)  content5 = sheet.cell_value(row, 4)  x3_data.append(content5)  content6 = sheet.cell_value(row, 5)  y3_data.append(content6)  content7 = sheet.cell_value(row, 6)  x4_data.append(content7)  content8 = sheet.cell_value(row, 7)  y4_data.append(content8)
x = [x1_data,x2_data,x3_data,x4_data]y = [y1_data,y2_data,y3_data,y4_data]fig = plt.figure(figsize=(4,3),dpi=100)  #使用figsize設置圖像大小,dpi設置分辨率for i in range(4):    x1 = x[i]    y1 = y[i]    plt.plot(x1,y1)tic = [0,5,10,15,20]plt.xticks(tic)plt.rcParams['xtick.direction'] = 'in'plt.rcParams['ytick.direction'] = 'in'plt.show()

其結果顯示如下:

Python學習筆記—數據可視化之美(一)的圖3

  • 美化第二步,進行相應代碼添加

x = [x1_data,x2_data,x3_data,x4_data]y = [y1_data,y2_data,y3_data,y4_data]z = ['數據1','數據2','數據3','數據4']fig = plt.figure(figsize=(4,3),dpi=100)  #使用figsize設置圖像大小,dpi設置分辨率colors = ['#c41a1c', '#377eb8', '#4daf4a', '#984ea3']markers = ['o', 's', 'H', 'D']for i in range(4):    x1 = x[i]    y1 = y[i]    plt.plot(x1,y1,marker=markers[i],markerfacecolor=colors[i],markersize=8,markeredgewidth=0.5,color='k',linewidth=0.5,    linestyle='-',label=z[i])

其結果顯示如下:

Python學習筆記—數據可視化之美(一)的圖4

  • 美化第三步,進行刻度線、邊框線的修改。其代碼修改如下:

plt.xlabel('位移',fontsize = 14)plt.ylabel('荷載',fontsize = 14)plt.xlim(0,20) #設置x軸范圍plt.ylim(0,90)plt.xticks(np.linspace(0,20,11,endpoint=True),fontsize = 10)plt.yticks(np.linspace(0,90,10,endpoint=True),fontsize = 10)ax = plt.gca()  ##刪除右邊和頂部的邊框線ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')plt.legend(['數據1','數據2','數據3','數據4'],loc='upper left',edgecolor='none',facecolor='none')

其結果如下圖所示:

Python學習筆記—數據可視化之美(一)的圖5

以上就是美化圖片的過程了,希望對大家有所幫助!!

歡迎大家關注公眾號“土木愛研小站”并加入學術交流群


您的每一個贊和關注都是我前進的動力!!!Python學習筆記—數據可視化之美(一)的圖6Python學習筆記—數據可視化之美(一)的圖7Python學習筆記—數據可視化之美(一)的圖8

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
1
3