散點圖、折線圖、條形圖
散點圖
概念
顯示兩組數據值,由一組不連接的點完成,每個點座標位置由變量的值決定,用於觀察兩種變量的相關性。
相關性
正相關、負相關、相關
外觀調整
- 顏色 c
c=‘r’ 紅色 - 點大小 s
面積值 s=100和s=10差10倍 - 透明度 alpha
- 點形狀 marker
默認值是o
代碼
- 基礎示例
import numpy as np
import matplotlib.pyplot as plt
#散點
height=[155,160,170,175,190]
weight=[45,50,51,55,75]
plt.scatter(height,weight)
plt.show()
- 相關示例
不相關
N=100
x=np.random.randn(N)
y1=np.random.randn(N)
plt.scatter(x,y1)
plt.show()
正相關
N=100
x=np.random.randn(N)
y2=x+np.random.randn(N)*0.8
plt.scatter(x,y2)
plt.show()
負相關
N=100
x=np.random.randn(N)
y3=np.random.randn(N)*0.8-x
plt.scatter(x,y3)
plt.show()
- 外觀調整
plt.scatter(x,y3,s=100)
plt.scatter(x,y3,s=100,c='r')
plt.scatter(x,y3,s=100,c='r',marker='<')
plt.scatter(x,y3,s=100,c='r',marker='<',alpha=0.5)
折線圖
概念
用直線段將各數據連接起來組成的圖形,用來觀察數據隨時間變化的趨勢
plot默認是折線圖
外觀調整
- 線型 linestyle
- 顏色 color
- 點形狀 marker
代碼
- 基礎示例
import numpy as np
import matplotlib.pyplot as plt
# 折線圖
x=np.linspace(-10,10,5)
## linespace生成一組等區間數值,從-10到10等區間分成100份
y=x**2
plt.plot(x,y)
plt.show()
import matplotlib.dates as mdates
date,open,close=np.loadtxt('01.csv',delimiter=',',converters={0:mdates.strpdate2num('%m/%d/%Y)},skiprows=1,usecols=(0,1,4),unpack=True)
#strpdate2num('%m/%d/%Y) 格式化字符串
- 外觀
plt.plot(x,y,linestyle='-',color='red',marker='o')
plt.plot(x,y,linestyle='--',color='green',marker='<')
條形圖
概念
以長方形長度作爲變量的統計圖表,比較多個項目分類的數據大小,通常用於較小的數據集分析
- bar函數
left是最左側的座標,height是高度
水平
- orientation=‘horizontal’
- plt.barh()
疊加並列
- 並列
index+bar_width 平移 - 疊加
第二個bottom=第一個y值
代碼
- 基礎
import numpy as np
import matplotlib.pyplot as plt
# 條形圖
N=5
y=[15,12,8,30,35]
index = np.arange(N)
p1 = plt.bar(x=index,height=y)
plt.show()
- 水平
#水平
p2 = plt.bar(x=0,bottom=index,height=0.5,color='red',width=y,orientation='horizontal')
#p2 =plt.barh(x=0,bottom=index,width=y)
plt.show()
- 並列
index=np.arange(4)
s1=[50,49,52,54]
s2=[42,66,88,11]
bar_width=0.3
plt.bar(index,s1,bar_width,color='b')
plt.bar(index+bar_width,s2,bar_width,color='r')
plt.show()
plt.bar(index,s1,bar_width,color='b')
plt.bar(index,s2,bar_width,color='r',bottom=s1)
plt.show()