matplotlib常用畫圖(散點圖、折線圖、直方圖、餅圖和箱線圖)
阿新 • • 發佈:2019-02-05
#載入資料集
from sklearn.datasets import load_iris
import pandas as pd
import matplotlib.pyplot as plt
dataset = load_iris()
data = pd.DataFrame(dataset['data'])
target = dataset['feature_names']
array = data.values
y = array[:,0]
x = range(len(y))
name1 = ("樣本")
name2 = target[0]
#畫折線圖 plt.figure() plt.plot(x,y,'r') plt.xlabel(name1) plt.ylabel(name2) #設定編碼,中文不會亂碼 plt.rcParams['font.sans-serif'] = 'SimHei' plt.rcParams['axes.unicode_minus'] = False plt.show()
#畫散點圖
plt.figure()
plt.scatter(x,y,c = 'b') #c設定顏色
plt.xlabel(name1)
plt.ylabel(name2)
plt.show()
#畫多個圖表 plt.figure(figsize=(6,7)) ax1 = plt.subplot(2, 1, 1) plt.scatter(array[:,0],array[:,0],c = 'r',label = target[0]) plt.scatter(array[:,0],array[:,1],c = 'b',label = target[1]) plt.scatter(array[:,0],array[:,2],c = 'y',label = target[2]) #plt.xticks(range(0,69,4),values[range(0,69,4),1],rotation = 30) plt.legend() #顯示圖例 ax2 = plt.subplot(2,1,2) plt.scatter(array[:,0],array[:,1],c = 'k') plt.scatter(array[:,0],array[:,2],c = 'c') plt.show()
plt.figure(figsize=(6,7))
sum1 = np.sum(array[:,0])
sum2 = np.sum(array[:,1])
sum3 = np.sum(array[:,2])
columns_sum = target[0:3]
sum_value =(sum1,sum2,sum3)
print(columns_sum)
plt.figure()
plt.bar(columns_sum,sum_value,width = 0.8,color = 'b')
plt.show()
#餅圖 sum_array = np.array([sum1,sum2,sum3]) plt.figure() plt.pie(x=sum_array,labels=columns_sum,autopct='%.2f%%') plt.show()
#箱線圖
'''
最大值、上四分位數、中位數、下四分位數、最小值,
剩下的為異常值
'''
plt.figure(figsize=(6,7))
array_2 = list(array[:,2])
plt.boxplot(array_2,sym="o",whis=1.5)
plt.show()
data_ = ([list(array[:,i]) for i in range(4)])
plt.boxplot(data_)
plt.show()