當前位置:
首頁 > 知識 > 教你搭建一個好看的 Jupyter 環境

教你搭建一個好看的 Jupyter 環境

(點擊

上方藍字

,快速關注我們)




來源:三次方根


segmentfault.com/a/1190000009305646


如有好文章投稿,請點擊 → 這裡了解詳情




又到擺脫重複工作,換個心情,然而並沒有軟用的時間了。這次,教大家如何搭建一個好看的jupyter環境。



安裝Jupyter




先來展示一下我的環境






  • python: 3.5.*



  • macos: 10.12.4




安裝Jupyter的過程只需安裝Anaconda即可。



測試一下初始設置:





jupyter notebook




配置ipython




首先,如果每次你打開一個nb(notebook)時,如果都需要載入一些模塊,一個很好地方法就是配置ipython的配置文件,可以直接使用以下命令創建配置文件:




ipython profile create




此時你會在~/.ipython/profile_default/目錄中獲得下面兩個文件:






  • ipython_config.py:打開任意ipython kernel時都會運行



  • ipython_notebook_config.py:打開notebook時會運行



配置方式是在所需要的配置文件中先鍵入:





c = get_config()




然後就可以通過修改c的屬性來控制所有的配置。




顯然,對大多數分析場景,numpy, scipy, pandas是肯定要載入的,因此,寫到配置中即可:




c

.

InteractiveShellApp

.

exec_lines

=

[


"import pandas as pd"

,


"import numpy as np"

,


"import scipy.stats as spstats"

,


"import scipy as sp"

,


]




配置matplotlib




還有一個常用功能就是matplotlib。matplotlib在notebook中需要使用





%matplotlib inline




才可默認在notebook中顯示圖像,一個簡單地方法就是在配置文件中加入,





c.IPKernelApp.matplotlib = "inline"




當然,默認也需要載入matplotlib





c

.

InteractiveShellApp

.

exec_lines

=

[


"import pandas as pd"

,


"import numpy as np"

,


"import scipy.stats as spstats"

,


"import scipy as sp"

,


"import matplotlib.pyplot as plt"


]




當然,也可以更多。但這樣可能會影響初始化notebook和ipython shell的速度,這個請大家自己權衡。




matplotlib顯示中文




此外,單獨拎matplotlib出來的另一個原因是,matplotlib還有一個中文顯示的問題。




首先,

解決編碼問題




python 2.7.*的解決方案是,在配置中加入:





import seaborn

as

sns


import

sys

# print sys.getdefaultencoding()# ipython notebook中默認是ascii編碼


reload

(

sys

)


sys

.

setdefaultencoding

(

"utf8"

)




python 3.*出於某些原因,不建議通過sys模塊修改編碼,原因參見這裡(http://stackoverflow.com/questions/3828723/why-should-we-not-use-sys-setdefaultencodingutf-8-in-a-py-script)。




解決方案是,在shell的配置中重新設置配置變數(bash的話設置文件.bashrc,zsh則設置文件.zshrc)。方法是末尾添加:





export PYTHONIOENCODING="utf8"




當然另一個方法是在啟動notebook時使用





PYTHONIOENCODING="utf8" & jupyter notebook




第二個是

修改matplotlib的默認字體。




首先我們來看可以使用的字體





import

matplotlib

.

font_manager


fonts

=

matplotlib

.

font_manager

.

findSystemFonts

()


l

=

[]


for

f

in

fonts

:


try

:


font

=

matplotlib

.

font_manager

.

FontProperties

(

fname

=

f

)


#print(font.get_family())


l

.

append

((

f

,

font

.

get_name

(),

font

.

get_family

(),

font

.

get_weight

()))


except

:


pass


df

=

pd

.

DataFrame

(

l

,

columns

=

[

"path"

,

"name"

,

"family"

,

"weight"

])


df




你應該看到下面這樣的表格:







然後找到支持中文的字體名,然後設置matplotlib的默認字體:





import matplotlib

as

mpl


mpl

.

rc

(

"font"

,

family

=

"Noto Sans CJK SC"

)




當然,你可以添加到剛才的配置中,或者採用這個博客的方法。




此外,如果你使用seaborn的話,seaborn在設置配置時可能會覆蓋掉matplotlib,此時採用以下代碼即可:





import seaborn

as

sns


sns

.

set_style

(

"ticks"

,


{


"font.family"

:

[

"Noto Sans CJK SC"

],


})




但是,該語句不建議寫在配置中,因為經常需要修改,可能會覆蓋之前的配置。




matplotlib在Retina屏幕中顯示模糊問題




直接使用下面語句即可,





%config InlineBackend.figure_format = "retina"




當然也可在配置中直接加入





c.InlineBackend.figure_format = "retina"




修改notebook樣式




默認的notebook可以逼你心中大喊WTF,這時候你需要一點CSS技能,修改~/.jupyter/custom/custom.css的內容。




個人認為最需要修改的內容包括






  1. notebook的默認寬度:notebook默認比較寬,markdown文字會顯得比較少,如果需要對外展示,文字部分會過少。



  2. notebook的代碼字體




我的修改規則是:





pre

.

CodeMirror

-

line

{


font

-

family

:

"BlinkMacSystemFont"

,

"Lucida Grande"

,

"Segoe UI"

,

Ubuntu

,

Cantarell

,

sans

-

serif


}



.

output_subarea

.

output_text

.

output_result

>

pre

{


font

-

family

:

"BlinkMacSystemFont"

,

"Lucida Grande"

,

"Segoe UI"

,

Ubuntu

,

Cantarell

,

sans

-

serif


}



.

output_subarea

.

output_text

.

output_stream

.

output_stdout

>

pre

{


font

-

family

:

"BlinkMacSystemFont"

,

"Lucida Grande"

,

"Segoe UI"

,

Ubuntu

,

Cantarell

,

sans

-

serif


}



#notebook-container {


max

-

width

:

830px

;


padding

:

40px

;


}




安裝Jupyter常用插件




這裡推薦兩個jupyter插件:




插件管理器jupyter notebook extensions




github地址在這裡(https://github.com/ipython-contrib/jupyter_contrib_nbextensions)。安裝和介紹也可以參考。




然後你就可以在jupyter主頁里找到下面的標籤頁管理插件了:







jupyter Dashboard




如果你的jupyter服務是搭建在主機上,並且平時和業務人員想用notebook地址的方式交付,jupyter dashboard插件是一個不錯的選擇。




安裝方法和github地址在這裡(https://github.com/jupyter/dashboards)。




原本效果如下:







點擊如下紅色設置,並點擊黃色按鈕後







就可得到如下的報告形式(刪去了業務人員不想查看的代碼),然後就可以粘貼連接交付報告了:







切換成dashboard模式可以拖拽相關方格來設置位置。




大功告成,現在開工!




看完本文有收穫?請轉

發分享給更多人


關注「Python開發者」,提升Python技能


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python開發者 的精彩文章:

Python 爬蟲神器 PyQuery 的使用方法
Python 圖像處理庫 Pillow 入門
Python + Django 如何支撐了 7 億月活用戶的 Instagram?
使用 VASPy 快速處理 VASP 文件以及數據可視化
Django 通道簡要介紹

TAG:Python開發者 |

您可能感興趣

python selenium環境搭建
搭建Android環境的看過來
從零搭建kubernetes多節點cluster
十分鐘搭建私有 Jupyter Notebook 伺服器
在 Fedora 上搭建 Jupyter 和數據科學環境
Linux Ubuntu搭建Git伺服器
linux搭建gitlab
Appium Android For Mac OS 搭建環境
三步教你如何使用RT-Thread MicroPython搭建一個Web伺服器
Eclipse JSP/Servlet 環境搭建
Kotlin Android 環境搭建
dotnet core webapi+vue 搭建前後端完全分離web架構(一)
Python3+Selenium3 Windows下環境搭建
ReactNative開發實戰一之環境搭建
Windows 7下搭建pyhton開發環境
Jmeter+Ant+Jenkins介面自動化測試框架搭建for Windows
Vue+VueRouter+elememntUI+axios 搭建後台管理系統
快速搭建你的 github pages 個人博客——基於 Create-React-App 的單頁面應用實踐
教你一步一步搭建最新版Apache Hive,配置hive生態圈組件
Linux+Nginx+Uwsgi+Django 搭建單服務實現多域名訪問