1. 程式人生 > >資料視覺化-Matplotlib繪製簡單拆線圖

資料視覺化-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')中第一個引數指定要以什麼樣的檔名儲存圖表,這個檔案將會被儲存到與當前文件同級的目錄下;第二個引數指定將圖表多餘的空白區域裁剪掉