1、數據可視化呈現的最基礎圖形就是:柱狀圖、水平條形圖、折線圖等等;
在python的matplotlib庫中分別可用bar、barh、plot函數來構建它們,再使用xticks與yticks(設置坐標軸刻度)、
xlabel與ylabel(設置坐標軸標簽)、title(標題)、legend(圖例)、xlim與ylim(設置坐標軸數據范圍)、
grid(設置網格線)等命令來裝飾圖形
import matplotlib.pyplot as plt import numpy as np #創建帶數字標簽的直方圖 numbers = list(range(1,11)) #np.array()將列表轉換為存儲單一數據類型的多維數組 x = np.array(numbers) y = np.array([a**2 for a in numbers]) plt.bar(x,y,width=0.5,align='center',color='c') plt.title('Square Numbers',fontsize=24) plt.xlabel('Value',fontsize=14) plt.ylabel('Square of Value',fontsize=14) plt.tick_params(axis='both',labelsize=14) plt.axis([0,11,0,110]) for a,b in zip(x,y): plt.text(a,b+0.1,'%.0f'%b,ha = 'center',va = 'bottom',fontsize=7) plt.savefig('images\squares.png') plt.show()
首先,前邊設置的x、y值其實就代表了不同柱子在圖形中的位置(坐標),通過for循環找到每一個x、y值
的相應坐標——a、b,再使用plt.text在對應位置添文字說明來生成相應的數字標簽,而for循環也保證了每
一個柱子都有標簽。其中,a, b+0.05表示在每一柱子對應x值、y值上方0.05處標注文字說明,'%.0f' % b,
代表標注的文字,即每個柱子對應的y值,其中0表示不顯示小數后面的數值,1就表示顯示小數后面一位,以此類推; ha='center', va= 'bottom'代表horizontalalignment(水平對齊)、
verticalalignment(垂直對齊)的方式,fontsize則是文字大小。條形圖、折線圖也是如此設置,餅圖則在
pie命令中有數據標簽的對應參數。對於累積柱狀圖、雙軸柱狀圖則需要用兩個for循環,同時通過a與b的
不同加減來設置數據標簽位置。
2、用函數plt.annotate()給折線圖折點添加坐標
#模塊pyplot包含很多生成圖表的函數 import matplotlib.pyplot as plt import numpy as np input_values = [1,2,3,4,5,6] squares = [1,4,9,16,25,36] #plot()繪制折線圖 plt.plot(input_values,squares,linewidth=5) #np.array()將列表轉換為存儲單一數據類型的多維數組 x = np.array(input_values) y = np.array(squares) #annotate()給折線點設置坐標值 for a,b in zip(x,y): plt.annotate('(%s,%s)'%(a,b),xy=(a,b),xytext=(-20,10), textcoords='offset points') #設置標題 plt.title('Square Numbers',fontsize=24) plt.xlabel('Value',fontsize=14) plt.ylabel('Square of Value',fontsize=14) #設置刻度的大小,both代表xy同時設置 plt.tick_params(axis='both',labelsize=14) #show()打開matplotlib查看器,並顯示繪制的圖形 plt.show()
