之前我们讨论过关于资料角力( Data wranging) 他的目的多半是为了后续的数据视觉话或者建立机器学习的模型。
Python中的视觉化套件有静态的matplotlib跟seaborn套件还有动态的bokeh套件。
我们今天就试着用matplotlib来画出一些基本的图行,包含了
直方图(Histogram)
散布图(Scatter plot)
线图(Line plot)
长条图(Bar plot)
盒须图(Box plot)
我们的开发环境是Jupyter Notebook,这个指令可以让图形不会在新视窗呈现。
%matplotlib inline
直方图(Histogram)
使用matplotlib.pyplot的hist()方法。
散布图(Scatter plot)
使用matplotlib.pyplot的scatter()方法。
%matplotlib inline
import matplotlib.pyplot as plt
speed = [4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20, 22, 23, 24, 24, 24, 24, 25]
dist = [2, 10, 4, 22, 16, 10, 18, 26, 34, 17, 28, 14, 20, 24, 28, 26, 34, 34, 46, 26, 36, 60, 80, 20, 26, 54, 32, 40, 32, 40, 50, 42, 56, 76, 84, 36, 46, 68, 32, 48, 52, 56, 64, 66, 54, 70, 92, 93, 120, 85]
plt.scatter(speed, dist)
plt.show()
线图(Line plot)
使用 matplotlib.pyplot 的 plot() 方法。
%matplotlib inline
import matplotlib.pyplot as plt
speed = [4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20, 22, 23, 24, 24, 24, 24, 25]
dist = [2, 10, 4, 22, 16, 10, 18, 26, 34, 17, 28, 14, 20, 24, 28, 26, 34, 34, 46, 26, 36, 60, 80, 20, 26, 54, 32, 40, 32, 40, 50, 42, 56, 76, 84, 36, 46, 68, 32, 48, 52, 56, 64, 66, 54, 70, 92, 93, 120, 85]
plt.plot(speed, dist)
plt.show()
长条图(Bar plot)
使用 matplotlib.pyplot 的 bar() 方法。
%matplotlib inline
from collections import Counter
import matplotlib.pyplot as plt
import numpy as np
cyl = [6 ,6 ,4 ,6 ,8 ,6 ,8 ,4 ,4 ,6 ,6 ,8 ,8 ,8 ,8 ,8 ,8 ,4 ,4 ,4 ,4 ,8 ,8 ,8 ,8 ,4 ,4 ,4 ,8 ,6 ,8 ,4]
labels, values = zip(*Counter(cyl).items())
width = 1
plt.bar(indexes, values)
plt.xticks(indexes + width * 0.5, labels)
plt.show()
盒须图(Box plot)
使用matplotlib.pyplot的boxplot()方法。
输出图形
使用圖形物件的savefig()方法。
小結
我们练习使用Python的视觉化套件matplotlib绘制基本的图形。
领取专属 10元无门槛券
私享最新 技术干货