1. 程式人生 > >matplotlib常用畫圖(散點圖、折線圖、直方圖、餅圖和箱線圖)

matplotlib常用畫圖(散點圖、折線圖、直方圖、餅圖和箱線圖)

#載入資料集
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()