ฉันจะเพิ่มความกว้างของเซลล์ของสมุดบันทึก Jupyter / ipython ในเบราว์เซอร์ของฉันได้อย่างไร


350

ฉันต้องการเพิ่มความกว้างของโน้ตบุ๊ก ipython ในเบราว์เซอร์ของฉัน ฉันมีหน้าจอความละเอียดสูงและฉันต้องการขยายความกว้าง / ขนาดของเซลล์เพื่อใช้ประโยชน์จากพื้นที่พิเศษนี้

ขอบคุณ!


แก้ไข: 5/2017

ตอนนี้ฉันใช้ jupyterthemes: https://github.com/dunovank/jupyter-themes

และคำสั่งนี้:

jt -t oceans16 -f roboto -fs 12 -cellw 100%

ซึ่งกำหนดความกว้างเป็น 100% ด้วยธีมที่ดี


1
ลอง np.set_printoptions (250)
vgoklani

2
ขอบคุณ! np.set_printoptions(linewidth=110)ทำงานได้สำหรับฉัน
Timo

1
@vgoklani ขออภัย แต่ 'np' สิ่งนั้นมาจากไหน
Brandt

1
@Brandt นำเข้าจำนวนมากเป็น np
vgoklani

3
@vgoklani +1 สำหรับธีม Jupyter
Gursharan Singh

คำตอบ:


615

หากคุณไม่ต้องการเปลี่ยนการตั้งค่าเริ่มต้นและต้องการเปลี่ยนความกว้างของสมุดบันทึกปัจจุบันที่คุณใช้งานอยู่คุณสามารถป้อนสิ่งต่อไปนี้ลงในเซลล์:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))

11
ดี ดูเหมือนว่าจะเปลี่ยนเฉพาะโค้ด / เซลล์ที่ถูกทำเครื่องหมาย มีวิธีทำเซลล์ส่งออกด้วยหรือไม่
dreyco676

13
วิธีนี้ใช้ได้ผลสำหรับฉัน! ฉันไม่ต้องติดตั้ง lib หรือแพ็คเกจใด ๆ เพื่อใช้งาน
Bill Ancalagon the black

1
ฉันใช้ Jupyter สำหรับ Julia คุณรู้สิ่งที่ฉันต้องการในกรณีนี้หรือไม่?
becko

68
นี่ทำให้ชีวิตฉันเปลี่ยนไป
YellowPillow

1
@becko ตามคำบรรยายของdisplay("text/html", "<style>.container { width:100% !important; }</style>")
จูเลีย

210

ว่าdiv.cellแก้ปัญหาไม่ได้ทำงานจริงใน IPython ของฉันคน แต่โชคดีที่แนะนำวิธีการแก้ปัญหาการทำงานให้ IPythons ใหม่:

สร้างไฟล์~/.ipython/profile_default/static/custom/custom.css(iPython) หรือ~/.jupyter/custom/custom.css(Jupyter) ที่มีเนื้อหา

.container { width:100% !important; }

จากนั้นรีสตาร์ทโน้ตบุ๊ก iPython / Jupyter โปรดทราบว่าสิ่งนี้จะส่งผลกระทบต่อสมุดบันทึกทั้งหมด


5
ตัวอย่างข้อมูลเล็ก ๆ น้อย ๆ เหล่านี้ควรโพสต์ในบางแห่งขอบคุณอีกครั้ง!
vgoklani

4
นี่เป็นประโยชน์อย่างมาก
ivrin

13
เริ่มต้น IPython ตำแหน่งโฟลเดอร์ 4.1 ~/.jupyter/custom/ที่กำหนดเองที่มีการเปลี่ยนแปลงไป
Romain

6
ฉันต้องรีสตาร์ทโน๊ตบุ๊ค Jupyter (4.1.0) เพื่อให้มันใช้งานได้ ฉันใส่ CSS ข้างต้นใน~/.jupyter/custom/custom.css
พอล

6
100% ไม่ได้ดูดีมากฉันเปลี่ยนเป็น 90%
เหลียง

69

ในการทำให้สิ่งนี้ทำงานร่วมกับ jupyter (เวอร์ชัน 4.0.6) ที่ฉันสร้างขึ้น~/.jupyter/custom/custom.cssประกอบด้วย:

/* Make the notebook cells take almost all available width */
.container {
    width: 99% !important;
}   

/* Prevent the edit cell highlight box from getting clipped;
 * important so that it also works when cell is in edit mode*/
div.cell.selected {
    border-left-width: 1px !important;
}

ใช้งานได้ใน Linux! แต่ฉันต้องบันทึกไว้ที่ไหนใน Windows
crusaderky

6
ลองเรียกใช้jupyter --config-dirแล้วสร้างcustom\custom.cssในตำแหน่งใดก็ตามที่คำสั่งส่งคืน
jvd10

@ jvd10 สิ่งนี้ไม่ได้ผลสำหรับฉัน ไม่custom.cssมีรหัสอื่น ๆ ที่นอกเหนือจากข้อมูลโค้ดข้างต้นหรือไม่ Jupyter รู้ได้อย่างไรว่าจะใช้มันอย่างไร?
mLstudent33

อย่างน้อยใน linux และ osx โดยค่าเริ่มต้น jupyter จะค้นหาไดเรกทอรีที่ซ่อนอยู่ซึ่งเรียกว่า.jupyterไฟล์การกำหนดค่ารวมถึงการปรับแต่งเช่นด้านบน ข้างต้นควรเป็นเนื้อหาของ custom.css เท่านั้น ดูที่นี่สำหรับข้อมูลเพิ่มเติม: jupyter.readthedocs.io/en/latest/projects/ …
jvd10

24

ได้เวลาใช้jupyterlab แล้ว

ในที่สุดการอัพเกรดที่จำเป็นมากก็มาถึงโน้ตบุ๊ก โดยค่าเริ่มต้นจะใช้ความกว้างเต็มของหน้าต่างของคุณเหมือนกับ IDE เนทิฟเต็มรูปแบบอื่น ๆ

สิ่งที่คุณต้องทำคือ:

pip install jupyterlab
# if you use conda
conda install -c conda-forge jupyterlab
# to run 
jupyter lab    # instead of jupyter notebook

นี่คือภาพหน้าจอจากบล็อก Jupyter.org


2
JupyterLab ยังอยู่ในช่วงเบต้าและมีการถดถอยจากโน้ตบุ๊กทั่วไป (ตามการออกแบบ) สิ่งหนึ่งที่น่าสังเกตก็คือห้าม JS โดยค่าเริ่มต้นและต้องการส่วนขยายสำหรับการสร้างภาพ JS ทุก ๆ ครั้ง
Ciprian Tomoiagă

1
และคุณจะเปลี่ยนความกว้างของเซลล์ Jupyter Lab ได้อย่างไร?
multigoodverse

1
ฉันพยายามเป็นเวลาหนึ่งชั่วโมงเพื่อให้ห้องจูปีเตอร์ทำงาน ในตอนแรกไม่มีการแสดงกราฟิก (pyplot / plotly) เอกสารไม่ได้กล่าวถึงคุณต้องติดตั้งส่วนขยายสำหรับสิ่งนั้น พยายามติดตั้งส่วนขยายที่ลงจุดแล้ว พบว่าคุณต้องการ nodejs สำหรับสิ่งนั้น ติดตั้งทั้งสองตอนนี้ฉันได้รับข้อความ "ไม่พบแม่แบบ:" index.html "" เมื่อมาถึงจุดนี้ฉันเลิกฉันอยู่กับโน๊ตบุ๊ค jupyter
Itamar Katz

15

สิ่งที่ฉันทำตามปกติหลังจากการติดตั้งใหม่คือการแก้ไขไฟล์ css หลักที่จัดเก็บสไตล์ภาพทั้งหมด ฉันใช้ Miniconda แต่สถานที่นั้นคล้ายกับที่อื่นC:\Miniconda3\Lib\site-packages\notebook\static\style\style.min.css

สำหรับบางหน้าจอความละเอียดเหล่านี้จะแตกต่างกันและมากกว่า 1 ในด้านความปลอดภัยฉันเปลี่ยนทั้งหมดเป็น 98% ดังนั้นหากฉันตัดการเชื่อมต่อจากหน้าจอภายนอกบนแล็ปท็อปของฉันฉันยังคงมีความกว้างหน้าจอ 98%

จากนั้นเพียงแทนที่1140px ด้วย 98%ของความกว้างของหน้าจอ

@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากแก้ไขแล้ว

@media (min-width: 1200px) {
  .container {
    width: 98%;
  }
}

ป้อนคำอธิบายรูปภาพที่นี่ บันทึกและรีสตาร์ทโน้ตบุ๊คของคุณ


ปรับปรุง

เมื่อเร็ว ๆ นี้มีเซลล์ Jupyter ที่กว้างขึ้นในสภาพแวดล้อมที่ติดตั้งซึ่งทำให้ฉันกลับมาที่นี่และเตือนตัวเอง

หากคุณจำเป็นต้องทำในเสมือน env คุณติดตั้ง jupyter บน คุณสามารถค้นหาไฟล์ css ในส่วนย่อยนี้

env/lib/python3.6/site-packages/notebook/static/style/stye.min.css

1
นี่มันเจ๋งมาก! มันง่ายและบรรลุสิ่งที่ต้องการ
กฎเกณฑ์

@Gunay /notebookไม่มีอยู่ในไดเรกทอรีสำหรับฉัน
mLstudent33

คุณรู้เวอร์ชันของ python ของคุณ (python -V เมื่อคุณเปิดใช้งานสภาพแวดล้อมของคุณ) และคุณสร้าง env เสมือนได้อย่างไร? คุณใช้โมดูล venv บน Python / Conda หรือไม่
Gunay Anach

12

คุณสามารถตั้งค่า CSS ของสมุดบันทึกได้โดยเรียกสไตล์ชีทจากเซลล์ใดก็ได้ เป็นตัวอย่างให้ดูที่ที่12 ขั้นตอนในการหลักสูตรเนเวียร์สโตกส์

โดยเฉพาะการสร้างไฟล์ที่มี

<style>
    div.cell{
        width:100%;
        margin-left:1%;
        margin-right:auto;
    }
</style>

ควรให้จุดเริ่มต้นแก่คุณ อย่างไรก็ตามอาจจำเป็นต้องปรับเปลี่ยนเช่นdiv.text_cell_renderเพื่อจัดการกับ markdown และโค้ดเซลล์

หากไฟล์custom.cssนั้นเพิ่มเซลล์ที่มี:

from IPython.core.display import HTML
def css_styling():
    styles = open("custom.css", "r").read()
    return HTML(styles)
css_styling()

สิ่งนี้จะใช้สไตล์ทั้งหมดและโดยเฉพาะเปลี่ยนความกว้างของเซลล์


สิ่งนี้ไม่ทำงานใน IPython ล่าสุด (เวอร์ชัน> 2) ตรวจสอบคำตอบนี้: stackoverflow.com/a/24207353/2108548
rominf

หรือถ้าคุณเพียงต้องการที่จะเปลี่ยนมันเป็นโน๊ตบุ๊คในปัจจุบัน ipythons ที่ผ่านมาและ jupyter ดู @ jjinking ของคำตอบ :)
nealmcb

8

(ตั้งแต่ปีพ. ศ. 2561 ฉันจะแนะนำให้ลองใช้ JupyterHub / JupyterLab โดยใช้ความกว้างเต็มของจอภาพหากนี่ไม่ใช่ตัวเลือกบางทีอาจเป็นเพราะคุณใช้ผู้ให้บริการ Jupyter-as-a-a-cloud อ่านต่อไป)

(มีสไตล์ถูกกล่าวหาว่าขโมยข้อมูลผู้ใช้ฉันได้ย้ายไปใช้ปลั๊กอิน Stylus แทน)

ฉันแนะนำให้ใช้ปลั๊กอินเบราว์เซอร์อย่างมีสไตล์อย่างมีสไตล์เบราว์เซอร์ปลั๊กอินวิธีนี้คุณสามารถแทนที่ css สำหรับโน้ตบุ๊กทั้งหมดโดยไม่ต้องเพิ่มรหัสใด ๆ ลงในสมุดบันทึก เราไม่ต้องการเปลี่ยนการกำหนดค่าใน. ipython / profile_default เนื่องจากเราใช้เซิร์ฟเวอร์ Jupyter ที่ใช้ร่วมกันสำหรับทั้งทีมและความกว้างเป็นการตั้งค่าของผู้ใช้

ฉันสร้างสไตล์สำหรับหน้าจอความละเอียดสูงในแนวตั้งซึ่งทำให้เซลล์กว้างขึ้นและเพิ่มพื้นที่ว่างด้านล่างเล็กน้อยเพื่อให้คุณสามารถวางตำแหน่งเซลล์สุดท้ายตรงกลางหน้าจอได้ https://userstyles.org/styles/131230/jupyter-wide แน่นอน คุณสามารถแก้ไข css ของฉันได้ตามที่คุณต้องการหากคุณมีเลย์เอาต์ที่แตกต่างกันหรือคุณไม่ต้องการพื้นที่ว่างเพิ่มเติมในตอนท้าย

สุดท้าย แต่ไม่ท้ายสุด Stylish คือเครื่องมือที่ยอดเยี่ยมที่มีอยู่ในชุดเครื่องมือของคุณเนื่องจากคุณสามารถปรับแต่งไซต์ / เครื่องมืออื่น ๆ ตามที่คุณต้องการได้อย่างง่ายดาย (เช่น Jira, Podio, Slack ฯลฯ )

@media (min-width: 1140px) {
  .container {
    width: 1130px;
  }
}

.end_space {
  height: 800px;
}

ใช่มีสไตล์ที่ดี! คุณช่วยกรุณาเพิ่มรหัสที่จำเป็นสำหรับพื้นที่พิเศษที่ด้านล่าง? ฉันมักจะมีเซลล์ว่างที่มีบรรทัดว่างจำนวนมากเพื่อให้เซลล์สุดท้ายจริงตรงกลาง -_-
Ciprian Tomoiagă

2
มีสไตล์ถูก
ถอดถอน

6

สำหรับผู้ใช้ Chrome ฉันแนะนำStylebotซึ่งจะช่วยให้คุณสามารถแทนที่ CSS ใด ๆ ในหน้าใดก็ได้รวมถึงให้คุณค้นหาและติดตั้ง CSS ที่กำหนดเองแบบแบ่งใช้อื่น ๆ อย่างไรก็ตามเพื่อจุดประสงค์ของเราเราไม่จำเป็นต้องมีรูปแบบล่วงหน้า เปิด Stylebot Edit CSSเปลี่ยนไป Jupyter จับการกดแป้นบางอย่างดังนั้นคุณจะไม่สามารถพิมพ์รหัสด้านล่างเพียงคัดลอกและวางหรือเพียงแก้ไขของคุณ:

#notebook-container.container {
    width: 90%;
}

เปลี่ยนความกว้างตามที่คุณต้องการฉันพบว่า 90% ดูดีกว่า 100% แต่มันก็ขึ้นอยู่กับดวงตาของคุณ


ข้อเสนอแนะที่ยอดเยี่ยมสำหรับโน๊ตบุ๊ค jupyter แต่ทำได้มากกว่านี้มาก
Robino

@bizi ฉันจะคลิกภายในเซลล์รหัสแล้วคลิกขวาเลือก Stylebot แก้ไข CSS และคัดลอกและวางสิ่งที่คุณมี? ถ้าเป็นเช่นนั้นมันไม่ได้ผลสำหรับฉัน ฉันเพิ่งได้กำไรเพิ่มขึ้นทั้งสองด้าน
mLstudent33

4

นี่คือรหัสที่ฉันใช้ มันยืดเซลล์อินพุตและเอาต์พุตไปทางซ้ายและขวา โปรดทราบว่าการบ่งชี้หมายเลขอินพุต / เอาต์พุตจะหายไป:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
display(HTML("<style>.output_result { max-width:100% !important; }</style>"))
display(HTML("<style>.prompt { display:none !important; }</style>"))

เย็น! ฉันจะยกเว้นบรรทัดสุดท้ายเท่านั้นเนื่องจากทำให้ข้อมูลการดำเนินการของเซลล์หายไป (ส่วนที่เหลือของเซลล์แสดงคำสั่งการยกเว้นและ * เมื่อการดำเนินการยังไม่เสร็จสิ้น)
onofricamila

2

ฉันทำการแก้ไขบางอย่างกับโซลูชันของ @ jvd10 '! สำคัญ' ดูเหมือนว่าแรงเกินไปที่คอนเทนเนอร์จะไม่ปรับตัวได้ดีเมื่อแสดงแถบด้านข้างของ TOC ฉันลบออกและเพิ่ม 'ความกว้างขั้นต่ำ' เพื่อ จำกัด ความกว้างขั้นต่ำ

นี่คือ. juyputer / custom / custom.css ของฉัน:

/* Make the notebook cells take almost all available width and limit minimal width to 1110px */
.container {
    width: 99%;
    min-width: 1110px;
}   

/* Prevent the edit cell highlight box from getting clipped;
 * important so that it also works when cell is in edit mode*/
div.cell.selected {
    border-left-width: 1px;
}

0

ฉันลองทุกอย่างและไม่มีอะไรที่เหมาะกับฉันฉันเลยลงเอยด้วยการแสดง data frame เป็น HTML ดังนี้

from IPython.display import HTML    
HTML (pd.to_html())

-1

สำหรับผู้ใช้ Firefox / Chrome วิธีที่ดีในการบรรลุความกว้าง 100% คือการใช้TamperMonkey ที่กำหนดเองสคริปต์

ประโยชน์คือ

  1. กำหนดค่านี้ครั้งเดียวในเบราว์เซอร์ของคุณไม่จำเป็นต้องแก้ไขการกำหนดค่าเซิร์ฟเวอร์
  2. ทำงานร่วมกับเซิร์ฟเวอร์ jupyter หลายแห่ง
  3. TamperMonkey เชื่อถือได้บำรุงรักษาและมีเสถียรภาพ
  4. การปรับแต่งเพิ่มเติมจำนวนมากสามารถทำได้ผ่านทาง javascript

สคริปต์นี้ทำงานสำหรับฉันhttps://gist.githubusercontent.com/mrk-andreev/2a9c2538fad0b687c27e192d5948834f/raw/6aa1148573dc20a22fca126e56e3b03f4abf281b/jpn_tmonkey.js

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.