ปรับขนาดหน้าต่างเอาต์พุตโน้ตบุ๊ก ipython


111

ตามค่าเริ่มต้น ouput สมุดบันทึก ipython ถูก จำกัด ไว้ที่หน้าต่างย่อยเล็ก ๆ ที่ด้านล่าง สิ่งนี้ทำให้เราบังคับให้ใช้แถบเลื่อนแยกต่างหากที่มาพร้อมกับหน้าต่างเอาต์พุตเมื่อเอาต์พุตมีขนาดใหญ่

ตัวเลือกการกำหนดค่าใด ๆ เพื่อให้ไม่ จำกัด ขนาดให้รันสูงที่สุดเท่าที่เอาต์พุตจริงจะเป็นอย่างไร หรือตัวเลือกในการปรับขนาดเมื่อสร้างแล้ว?

คำตอบ:


9

ดูส่วนขยาย jupyter autoscroll (ส่วนหนึ่งของ jupyter_contrib_nbextensions)ซึ่งช่วยให้คุณสามารถเลือกเมื่อเอาต์พุตเริ่มเลื่อนในเมนูแบบเลื่อนลง (คุณสามารถตั้งค่าไม่ให้เลื่อนได้) แม้ว่า API ที่ใช้จะไม่ได้รับการสนับสนุนอย่างเป็นทางการดังนั้นจึงอาจหยุดทำงานได้ทุกเมื่อ


ขอบคุณ Matt! ฉันจะใช้มันได้อย่างไร?
nom-mon-ir

1
โคลน repo ในตำแหน่งที่ถูกต้องในโปรไฟล์ ipython ของคุณ (cf readme) คัดลอก custom.example.js ไปยัง custom.js และ uncomment ต้องการ ('custom / autoscroll.js') ไว้ในนั้น รีสตาร์ท IPython
แมตต์

241

คุณสามารถสลับหน้าต่างเลื่อนในเมนูหลักของสมุดบันทึก

เซลล์ -> เอาต์พุตปัจจุบัน -> สลับการเลื่อน


23
หรือ (Cell -> All Output -> Toggle Scrolling)
aquirdturtle

วิธีใดในการทำสิ่งนี้ต่อเซลล์? ตัวอย่างเช่นเซลล์ที่มีเนื้อหา json จำนวนมากต้องการเลื่อน แต่สำหรับเซลล์ที่มีเอาต์พุตรูปภาพไม่ต้องการเลื่อน
brown.2179

1
เยี่ยมไปเลยถ้ามันกำลังเลื่อนเพียงแค่คลิกที่ด้านซ้ายของผลลัพธ์ก็จะขยายออกและทำให้ไม่เลื่อน :-)
user1953366

1
นี่ควรเป็นคำตอบที่ได้รับการยอมรับ เป็นปัจจุบันมากกว่าคำตอบที่ยอมรับและทำงานได้อย่างมีเสน่ห์
Sean McCarthy

จะเป็นการดีที่จะเพิ่มสิ่งนี้เป็นการmagicดำเนินการ
gies0r

45

ภาคผนวก # 2: ข้อคิดเห็นนี้: https://github.com/ipython/ipython/issues/2172#issuecomment-53708976 ระบุว่าคุณสามารถเพิ่มขนาดสูงสุดของเซลล์ผลลัพธ์ได้อย่างไร เรียกใช้รหัสต่อไปนี้ในสมุดบันทึก:

%%javascript
IPython.OutputArea.auto_scroll_threshold = 9999;

ดูเหมือนจะไม่ทำงาน ในคอนโซลฉันได้รับ: accessing OutputArea is deprecated. Use require("notebook/js/outputarea").OutputArea. การใส่ไว้ในคอนโซลแสดงว่าเป็นฟังก์ชัน
broccoli2000

ไม่ได้ผลสำหรับฉันอาจเป็นเพราะผลลัพธ์ของฉันสร้างขึ้นจาก Javascript
Sergey Orshanskiy

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

22

ฉันแค่วางเคอร์เซอร์ไว้ในกล่องสีเทาถัดจากผลลัพธ์และคลิกจากนั้นผลลัพธ์ทั้งหมดจะปรากฏขึ้น


ว้าวนี่เป็นวิธีง่ายๆ เหตุใดจึงจำเป็นต้องมี "โซลูชัน" อื่น ๆ ที่โพสต์ไว้
Rafael_Espericueta

15

สิ่งนี้ใช้ได้ผลสำหรับฉันใน Chrome เรียกใช้ในเซลล์แยกต่างหาก เลือกความสูงสูงสุดที่คุณต้องการแสดงโดยไม่ต้องเลื่อน

%%html
<style>
.output_wrapper, .output {
    height:auto !important;
    max-height:1000px;  /* your desired max-height here */
}
.output_scroll {
    box-shadow:none !important;
    webkit-box-shadow:none !important;
}
</style>

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


เยี่ยมมาก โค้ดชิ้นนี้ใช้เคล็ดลับ แปลกนี่ไม่ใช่การตั้งค่าเอกสารของสมุดบันทึก ipython / jupyter
user989762

ฉันชอบสิ่งนี้ในการเพิ่มส่วนขยาย ฉันยังใช้วิธีนี้เพื่อจัดรูปแบบผลลัพธ์ที่เหลือของฉันด้วย ขอบคุณ @ broccoli2000!
hyperGeoMetric

ไม่ทราบว่าคุณสามารถทำสิ่งนี้ได้ ... แฮ็กเล็กน้อย แต่ดูเหมือนว่าสภาพแวดล้อมของ Jupyter โดยทั่วไปก็เช่นกัน ขอบคุณ!
Ezekiel Victor

11

ในการปรับขนาดความสูงของเอาต์พุตแบบเลื่อนได้ฉันทำสิ่งต่อไปนี้ (คุณสามารถเปลี่ยน 44em):

from IPython.core.display import display, HTML
display(HTML("<style>div.output_scroll { height: 44em; }</style>"))

1
นี้จะน่ากลัวมากและยังคงทำงานร่วมกับ Jupyter 1.0+
rjurney

2

สำหรับ iplot plot.ly ฉันต้องเพิ่มสิ่งต่อไปนี้เพื่อดูการเปลี่ยนแปลงใด ๆ (มันเปลี่ยนเอาต์พุตทั้งหมด)

%%html
<style>
.python-iframe > iframe {
  height:1000px !important;
}
</style>

0

ฉันลองใช้ตัวเลือกทั้งหมดข้างต้นแล้ว แต่ไม่มีตัวเลือกใดได้ผล นี่คือวิธีกำจัดเซลล์เลื่อน คลิกขวาที่เซลล์แล้วคลิก "ปิดการใช้งานการเลื่อนสำหรับผลลัพธ์" ฉันรู้ว่านี่ไม่ได้ปรับขนาดเซลล์เลื่อน แต่จะทำให้โค้ดของฉันอ่านง่ายขึ้นเนื่องจากเซลล์ที่เลื่อนมีขนาดเล็กมาก (อย่างน้อยสำหรับฉัน)


-1

ในJupyterLabคุณสามารถคลิกขวาและเลือก: สร้างมุมมองใหม่สำหรับเอาท์พุท

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