python matplotlib 基礎

來源:互聯網
上載者:User

標籤:data visualization   資料視覺效果   matplotlib   numpy   

簡介

matplotlib是python裡面的一個專業繪圖工具庫,如果想通過python來繪製漂亮的圖形,那麼一定少不了它了。

準備在開始畫圖之前需要安裝numpy以及matplotlib庫,當然python基本庫也必不可少,numpy是一個專業的數組,矩陣處理工具。

? Python
? Numpy- this is the module which does most array and mathematical manip-

ulation
? Matplotlib- this is the module you will be using for plotting

You can check these are installed by going to a terminal and typing: 

匯入目標庫:

$ python>>> import numpy as np>>> import pylab as pl
基本繪圖直線或曲線

接下來咱們嘗試一下基礎的繪圖:

****************************************************# lineplot.pyimport numpy as npimport pylab as pl# Make an array of x valuesx = [1, 2, 3, 4, 5]# Make an array of y values for each x valuey = [1, 4, 9, 16, 25]# use pylab to plot x and ypl.plot(x, y)# show the plot on the screenpl.show()****************************************************

散佈圖 scatter plot

****************************************************# scatterplot.pyimport numpy as npimport pylab as pl# Make an array of x valuesx = [1, 2, 3, 4, 5]# Make an array of y values for each x valuey = [1, 4, 9, 16, 25]# use pylab to plot x and y as red circlespl.plot(x, y, ’ro’)# show the plot on the screenpl.show()****************************************************


圖形的基本屬性

當圖形中元素太多,可以通過改變點的顏色,大小,以及形狀來區分圖中的元素,matplot可以設定下列基本顏色:


pl.plot(x, y, ’r’)
這就能划出一條紅色的線。

如果要改變線的形態呢?有以下形態的線:

[‘-‘ |‘--‘ | ‘-.‘ |‘:‘ | ‘None‘ |‘ ‘ | ‘‘]

plot(x,y, ’--’)
划出的就是一條虛線。

以及還能改變marker的形態:

如果我用以下代碼,畫出的就是藍色的星型標記:

plot(x,y, ’b*’)

label畫完圖當然得有標記,可以用xlabel和ylabel方法分別標記圖:

pl.xlabel(’put text here’)pl.ylabel(’put text here’)

當然還不能缺了title:

pl.title(’Put plot title here’)

如果發現圖的比例不太合適,那麼咱們可以調節圖的橫豎軸座標範圍:

pl.xlim(x_low, x_high)pl.ylim(y_low, y_high)

以下是一個樣本:

****************************************************#lineplotAxis.pyimport numpy as npimport pylab as pl# Make an array of x valuesx = [1, 2, 3, 4, 5]# Make an array of y values for each x valuey = [1, 4, 9, 16, 25]# use pylab to plot x and ypl.plot(x, y)# give plot a titlepl.title(’Plot of y vs. x’)# make axis labelspl.xlabel(’x axis’)pl.ylabel(’y axis’)# set axis limitspl.xlim(0.0, 7.0)pl.ylim(0.0, 30.)# show the plot on the screenpl.show()****************************************************


多個圖形在一張圖上畫多個圖形,可以連續的使用plot方法,注意的是為了方便區分圖形,可以使用不同的顏色:

plot(x1, y1, ’r’)plot(x2, y2, ’g’)

Figure legends matplot的legend文法如下:

pl.legend((plot1, plot2), (’label1, label2’), ’best’, numpoints=1)

第一個參數是咱們需要標記的圖形,如果畫面上又多個圖形,那麼可以用括弧括起來,第二個參數是具體的label,就是咱們希望說明給看圖的人這個圖形表示的是什麼,第三個參數表示的是我們希望將圖放在什麼位置,best表示系統自動放於最佳位置,當然可以自訂為‘upper right’, ‘upper left’, ‘center’, ‘lower left’, ‘lower right’. 

以下是一個樣本圖:

****************************************************# lineplotFigLegend.pyimport numpy as npimport pylab as pl# Make x, y arrays for each graphx1 = [1, 2, 3, 4, 5]y1 = [1, 4, 9, 16, 25]x2 = [1, 2, 4, 6, 8]y2 = [2, 4, 8, 12, 16]# use pylab to plot x and y : Give your plots namesplot1 = pl.plot(x1, y1, ’r’)plot2 = pl.plot(x2, y2, ’go’)# give plot a titlepl.title(’Plot of y vs. x’)# make axis labelspl.xlabel(’x axis’)pl.ylabel(’y axis’)# set axis limitspl.xlim(0.0, 9.0)pl.ylim(0.0, 30.)# make legendpl.legend([plot1, plot2], (’red line’, ’green circles’), ’best’, numpoints=1)# show the plot on the screenpl.show()****************************************************


長條圖

以下是一個畫長條圖的例子:

****************************************************# histplot.pyimport numpy as npimport pylab as pl# make an array of random numbers with a gaussian distribution with# mean = 5.0# rms = 3.0# number of points = 1000data = np.random.normal(5.0, 3.0, 1000)# make a histogram of the data arraypl.hist(data)# make plot labelspl.xlabel(’data’)pl.show()****************************************************
這裡先用均值為5,方差為3的高斯分布產生了1000個點,再講這些點做長條圖,左圖是預設的格式,右圖是以下語句:

pl.hist(data, histtype=’stepfilled’)



當然也可以手動的設定長條圖中bin的大小多少:

bins = np.arange(-5., 16., 1.)pl.hist(data, bins, histtype=’stepfilled’)

一張畫布多張圖



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

python matplotlib 基礎

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.