教你搭建一個好看的 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的內容。
個人認為最需要修改的內容包括
notebook的默認寬度:notebook默認比較寬,markdown文字會顯得比較少,如果需要對外展示,文字部分會過少。
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 爬蟲神器 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 搭建單服務實現多域名訪問