最近在做相關數據自動化和處理分析,個人覺得python在這方面,配合一些數據分析和作圖工具包(matplotlib, googlechart,pychart等等),實現自動化分析還是非常強大的,也很容易入門和上手,以自動化代替人手工去分析極大提升辦事效率這也是一件非常有意義的事情
后面會陸陸續續將python自動化分析和畫圖方面的東東整理記錄下來,這也是不斷積累的過程,希望有所沉淀
【背景:基於python腳本做海量數據自動化分析時,基於數據畫圖分析成為一種更直觀的方式,但當數據多時,坐標顯示的刻度需要控制以使圖形顯示和分析更直觀和清晰】
這幅數據x坐標顯示的刻度有點問題,當數據越來越多時,若坐標主刻度間隔未得到合理控制,x坐標上數據顯示會越來越亂,如圖中紅線圈點的數據。
按照matplotlib官方document中的用法,對 x axis/ y axis坐標刻度間隔的控制可以基於 matplotlib.ticker里的 MultipleLocator /FormatStrFormatter模塊來控制,具體實現及其效果見下:
【matplotlib 關於坐標由axis的詳細document 說明請參考 鏈接: http://matplotlib.org/api/axis_api.html】
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#---------------------------------------------------
#演示MatPlotLib中設置坐標軸主刻度標簽和次刻度標簽.
#對於次刻度顯示,如果要使用默認設置只要matplotlib.pyplot.minorticks_on()
#---------------------------------------------------
from pylab import *
from matplotlib.ticker import MultipleLocator
from matplotlib.ticker import FormatStrFormatter
#---------------------------------------------------
#將x主刻度標簽設置為20的倍數(也即以 20為主刻度單位其余可類推)
xmajorLocator = MultipleLocator(20);
#設置x軸標簽文本的格式
xmajorFormatter = FormatStrFormatter('%3.1f')
#將x軸次刻度標簽設置為5的倍數
xminorLocator = MultipleLocator(5)
#設定y 軸的主刻度間隔及相應的刻度間隔顯示格式
#將y軸主刻度標簽設置為1.0的倍數
ymajorLocator = MultipleLocator(1.0)
#設置y軸標簽文本的格式
ymajorFormatter = FormatStrFormatter('%1.1f')
#將此y軸次刻度標簽設置為0.2的倍數
yminorLocator = MultipleLocator(0.2)
t = arange(1.0, 100.0, 1)
s=t*exp(-t*1.3)+2*sqrt(t)
#注意:一般都在ax中設置,不再plot中設置
ax = subplot(111)
plot(t,s,'--r*')
#設置主刻度標簽的位置,標簽文本的格式
ax.xaxis.set_major_locator(xmajorLocator)
ax.xaxis.set_major_formatter(xmajorFormatter)
ax.yaxis.set_major_locator(ymajorLocator)
ax.yaxis.set_major_formatter(ymajorFormatter)
#顯示次刻度標簽的位置,沒有標簽文本
ax.xaxis.set_minor_locator(xminorLocator)
ax.yaxis.set_minor_locator(yminorLocator)
ax.xaxis.grid(True, which='major') #x坐標軸的網格使用主刻度
ax.yaxis.grid(True, which='minor') #y坐標軸的網格使用次刻度
show()
##########################################################
【附畫出來的坐標圖形格式效果】
另附經過 添加主刻度單位和標識限制之后畫出來的圖形(x axis 這次清晰了很多:))