端午佳節愉快~這次的端午佳節,減少移到動在家畫畫圖吧~
這個系列已經進行了九週了,基本圖形都已經介紹也都畫過了,這是倒數第二個圖,下週就會完成最後一個圖,本週就來介紹一下散佈圖,多用於觀測一些資料離群狀況,或是工業可以用在瑕疵檢測…等等.
資料來源 : 因為要說明,所以本次資料來源採用自定義.
0. 目標
1. 先說說六標準差
由於這次想利用常態分佈看出瑕疵狀況,通常單邊連續三點落在管制上下限,就需要注意,若想要更詳細了解可以參考 奇美醫療財團法人 管制圖 也引用文件中的管制圖,藉此等等會畫出類似的圖形作為觀察.
2. 開始畫圖吧,先引入相關套件
1 2 3 4 |
#散佈圖 #載入所需元件 from pyecharts.charts import Scatter,Line #散佈圖是Scatter,另外因為還要畫上下限制線,故也引入Line from pyecharts import options as opts |
3. 定義資料
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
data = [ [1, 1], [2, 2], [3, 1], [4, 7], [5, 8], [6, 8], [7, 6], [8, 7], [9, 5], [10, 10], [11, 11], [12, 11], ] data.sort(key=lambda x: x[0]) x_data = [d[0] for d in data] #批次 y_data = [d[1] for d in data] #瑕疵數 |
4. 先畫出管制線
1 2 3 4 5 6 7 8 |
line = ( Line() .add_xaxis(x_data) .add_yaxis('UCL',[12,12,12,12,12,12,12,12,12,12,12,12],label_opts=opts.LabelOpts(is_show=False)) .add_yaxis('CL',[6,6,6,6,6,6,6,6,6,6,6,6,6],label_opts=opts.LabelOpts(is_show=False)) .add_yaxis('LCL',[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],label_opts=opts.LabelOpts(is_show=False)) ) line.render_notebook()#先印出來看看 |
5. 開始畫出散佈圖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
scatter = ( Scatter() .add_xaxis( xaxis_data=x_data, ) .add_yaxis( series_name="瑕疵數量", y_axis=y_data, symbol_size=20, #定義圓點大小 label_opts=opts.LabelOpts(is_show=False), ) ) scatter.render_notebook()#先印出來看看 |
6. 讓散佈圖變好看點,並且加上一些X,Y軸資訊
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
scatter = ( Scatter() .add_xaxis( xaxis_data=x_data, ) .add_yaxis( series_name="瑕疵數量", y_axis=y_data, symbol_size=20, label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( xaxis_opts=opts.AxisOpts( type_="value", name = '批次', splitline_opts=opts.SplitLineOpts(is_show=False), min_=0, max_=12, min_interval=1, split_number=12, ), yaxis_opts=opts.AxisOpts( type_="value", name = '瑕疵數', splitline_opts=opts.SplitLineOpts(is_show=False), min_=0, max_=12, ), tooltip_opts=opts.TooltipOpts(is_show=False), ) ) scatter.render_notebook()#先印出來看看 |
7. 合併線圖與散佈圖,完成管制圖
1 2 |
scatter.overlap(line) scatter.render_notebook() |
按照往例寫在後頭:
身為一個IT與企業人,取之網路用之網路,也想為社會上盡一些力量,做點CSR(企業社會責任 Corporate Social Responsibility),透過我小小的力量,藉此拋磚引玉,我整理了相關視覺化資料簡報(目前約一百多頁)與怎麼畫圖表的程式碼都已經寫成Step by Step的Jupyter Notebook教學文件,有些會陸續在Blog說明,但若各位賢達也想給予鼓勵做些公益,歡迎到任何慈善公益團體捐款(E.g 罕見疾病、脊髓損傷、唐寶寶、愛貓愛狗…etc,比較小型的公益團體),讓愛心可以分散力量發揮出去,並且透過留言聯繫我,提供捐款證明,我將此份文件無償提供給您參考(文件會陸續更新,以當下最新版本提供).
ps 給醫護鼓勵打氣也可以啊~