資料視覺化-Matplotlib繪製簡單拆線圖
要檢視使用matplotlib可製作的各種圖表,請訪問 http://matplotlib.org/ 的示例畫廊。單擊畫廊中的圖表,就可檢視用於生成圖表的程式碼。
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
plt.plot(squares)
plt.show()
解析:
- 首先要匯入
pyplot
模組,這裡還給它指定了別名plt
,以簡化程式碼 - 建立一個平方數列
squares = [1, 4, 9, 16, 25]
- 將數列傳給函式
plot()
,這個函式嘗試根據這些數字繪製出有意義的圖形 plt.show()
開啟matplotlib
修改標籤文字和線條的粗細
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
## 1. 線條粗細
plt.plot(squares, linewidth=5) # linewidth引數用來設定線條粗細
plt.show()
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
## 1. 線條粗細
plt.plot(squares, linewidth=5) # linewidth引數用來設定線條粗細
## 2.設定標題
plt.title('title', fontsize=24) # fontsize引數用來指定文字大小
plt.show()
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
## 1. 線條粗細
plt.plot(squares, linewidth=5) # linewidth引數用來設定線條粗細
## 2.設定標題
plt.title('title', fontsize=24) # fontsize引數用來指定文字大小
## 3.為座標軸新增標籤
plt.xlabel('xvalue', fontsize= 24)
plt.ylabel('yvalue', fontsize=24)
plt.show()
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
## 1. 線條粗細
plt.plot(squares, linewidth=5) # linewidth引數用來設定線條粗細
## 2.設定標題
plt.title('title', fontsize=24) # fontsize引數用來指定文字大小
## 3.為座標軸新增標籤
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
## 4.設定刻度標記的大小
plt.tick_params(axis='both', labelsize=15) # labelsize引數用來指定刻度標記大小
plt.show()
校正圖形
上圖存在的問題,x軸值為4時,對應的平方值為25
造成上圖的原因是,當為plot()
提供一系列數字時,它假設第一個資料點對應的x座標值為0;因此,這裡需要改變這種預設行為
import matplotlib.pyplot as plt
## 提供輸入值
input_value = [1, 2, 3, 4, 5]
## 提供輸出值
squares = [1, 4, 9, 16, 25]
## 將輸入值與輸出值相對應
plt.plot(input_value, squares, linewidth=5)
plt.title('title', fontsize=24)
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
plt.tick_params(axis='both', labelsize=15)
plt.show()
使用scatter()繪製散點圖並設定其樣式
scatter()
可以繪製單個點,向它傳遞一對x,y座標,它將在指定位置繪製一個點
plt.scatter(2, 4)
plt.show()
## 1.引數s可以控制點的大小
plt.scatter(2, 4, s=200)
plt.show()
## 1.引數s可以控制點的大小
plt.scatter(2, 4, s=200)
## 2.設定圖表標題
plt.title('title', fontsize=24)
plt.show()
## 1.引數s可以控制點的大小
plt.scatter(2, 4, s=200)
## 2.設定圖表標題
plt.title('title', fontsize=24)
## 3.設定軸標籤
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
plt.show()
## 1.引數s可以控制點的大小
plt.scatter(2, 4, s=200)
## 2.設定圖表標題
plt.title('title', fontsize=24)
## 3.設定軸標籤
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
## 4.設定刻度標記大小
plt.tick_params(axis='both', which='major', labelsize=15) # which : {'major', 'minor', 'both'},major指定其為主要的點
plt.show()
接下來,繪製出一系列的點
# 設定x,y值對應資料集
x_value = [1, 2, 3, 4, 5]
y_value = [1, 4, 9, 16, 25]
plt.scatter(x_value, y_value, s=100)
plt.title('title', fontsize=24)
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
plt.tick_params(axis='both', which='major', labelsize=15)
plt.show()
自動計算資料
# 生成1000個序列
x_value = list(range(1, 1001))
# 生成x對應值的平方序列
y_value = [x**2 for x in x_value]
plt.scatter(x_value, y_value, s=40)
plt.title('title', fontsize=24)
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
plt.tick_params(axis='both', which='major', labelsize=15)
# 設定座標軸的取值範圍
plt.axis([0, 1100, 0, 1100000]) # 這裡對應的是x,y的最小值與最大值
plt.show()
刪除資料點的輪廓
matplotlib允許你給散點圖中的各個點指定顏色。預設為藍色點和黑色輪廓,在散點圖包含的資料點不多時效果很好。但繪製很多點時,黑色輪廓可能會粘連在一起。要刪除資料點的輪廓,可在呼叫sactter()時傳遞實edgecolor=‘none’
x_value = list(range(1, 1001))
y_value = [x**2 for x in x_value]
# 刪除資料點的輪廓
plt.scatter(x_value, y_value, edgecolor='none', s=40)
plt.title('title', fontsize=24)
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
plt.tick_params(axis='both', which='major', labelsize=15)
plt.axis([0, 1100, 0, 1100000])
plt.show()
自定義顏色
sectter()中的引數c可以指定資料點的顏色
顏色的值可以使用英文名稱,也可以使用RGB顏色值——其實參形式是:傳遞引數c,並將其設定為一個元組,其中包含三個0~1之間的小數值,它們分別表示紅色、綠色和藍色分量
x_value = list(range(1, 1001))
y_value = [x**2 for x in x_value]
# 更改資料點的顏色
# plt.scatter(x_value, y_value, c='red', edgecolor='none', s=40)
# 或者
plt.scatter(x_value, y_value, c=(0.8, 0.3, 0.2), edgecolor='none', s=40)
plt.title('title', fontsize=24)
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
plt.tick_params(axis='both', which='major', labelsize=15)
plt.axis([0, 1100, 0, 1100000])
plt.show()
使用顏色對映
顏色對映(colormap) 是一系列顏色,它們從起始顏色漸變到結束顏色
x_value = list(range(1, 1001))
y_value = [x**2 for x in x_value]
# 設定顏色對映關係
plt.scatter(x_value, y_value, c=y_value, cmap=plt.cm.Blues, edgecolor='none', s=40)
plt.title('title', fontsize=24)
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
plt.tick_params(axis='both', which='major', labelsize=15)
plt.axis([0, 1100, 0, 1100000])
plt.show()
這裡將引數c設定成了一個y值列表,並使用引數cmap告訴pyplot使用哪個顏色對映。這些程式碼將y值較小的點顯示為淺藍色,並將y值較大的點顯示為深藍色
要了解pyplot中所有顏色對映,請訪問 http://matplotlib.org ,單擊Examples,向下激動到Color Examples,再單擊colormaps_reference
自動儲存圖象
x_value = list(range(1, 1001))
y_value = [x**2 for x in x_value]
plt.scatter(x_value, y_value, c=y_value, cmap=plt.cm.Blues, edgecolor='none', s=40)
plt.title('title', fontsize=24)
plt.xlabel('xvalue', fontsize=24)
plt.ylabel('yvalue', fontsize=24)
plt.tick_params(axis='both', which='major', labelsize=15)
plt.axis([0, 1100, 0, 1100000])
# 自動儲存圖象
plt.savefig('squares_plot.png', bbox_inches='tight')
plt.savefig('squares_plot.png', bbox_inches='tight')
中第一個引數指定要以什麼樣的檔名儲存圖表,這個檔案將會被儲存到與當前文件同級的目錄下;第二個引數指定將圖表多餘的空白區域裁剪掉