Làm cách nào để tăng chiều rộng ô của sổ ghi chép Jupyter / ipython trong trình duyệt của tôi?


349

Tôi muốn tăng chiều rộng của máy tính xách tay ipython trong trình duyệt của tôi. Tôi có một màn hình độ phân giải cao và tôi muốn mở rộng chiều rộng / kích thước ô để sử dụng không gian thừa này.

Cảm ơn!


chỉnh sửa: 5/2017

Bây giờ tôi sử dụng jupytertheme: https://github.com/dunovank/jupyter-theme

và lệnh này:

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

trong đó thiết lập chiều rộng đến 100% với một chủ đề đẹp.


1
Hãy thử np.set_printoptions (250)
vgoklani

2
Cảm ơn! np.set_printoptions(linewidth=110)làm việc cho tôi
Timo

1
@vgoklani Xin lỗi, nhưng 'np'? cái đó từ đâu tới?
Brandt

1
@Brandt nhập numpy như np
vgoklani

3
@vgoklani +1 cho Chủ đề Jupyter
Gursharan Singh

Câu trả lời:


613

Nếu bạn không muốn thay đổi cài đặt mặc định của mình và bạn chỉ muốn thay đổi độ rộng của sổ ghi chép hiện tại bạn đang làm việc, bạn có thể nhập thông tin sau vào một ô:

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

11
Đẹp. Điều này có vẻ như nó chỉ thay đổi các ô mã / đánh dấu. Có cách nào để nó làm các ô đầu ra không?
dreyco676

13
Giải pháp này đã làm việc cho tôi! Tôi không phải cài đặt bất kỳ lib hoặc gói để sử dụng nó.
Bill Ancalagon màu đen

1
Tôi đang sử dụng Jupyter cho Julia. Bạn có biết tôi cần gì trong trường hợp này?
vẫy gọi

68
Điều này đã thay đổi cuộc đời tôi
YellowPvel

1
@becko theo diễn ngôn của julia tác phẩm này:display("text/html", "<style>.container { width:100% !important; }</style>")
Liso

209

Đó là div.cellgiải pháp không thực sự làm việc trên IPython của tôi, tuy nhiên may mắn là có người đề nghị một giải pháp làm việc cho IPythons mới:

Tạo một tệp ~/.ipython/profile_default/static/custom/custom.css(iPython) hoặc ~/.jupyter/custom/custom.css(Jupyter) với nội dung

.container { width:100% !important; }

Sau đó khởi động lại máy tính xách tay iPython / Jupyter. Lưu ý rằng điều này sẽ ảnh hưởng đến tất cả các máy tính xách tay.


5
Những đoạn thông tin nhỏ này nên được đăng ở một số nơi, cảm ơn một lần nữa!
vgoklani

4
Điều này cực kỳ hữu ích
ivrin

13
Bắt đầu vị trí thư mục tùy chỉnh IPython 4.1 đã thay đổi thành ~/.jupyter/custom/.
Romain

6
Tôi đã phải khởi động lại máy tính xách tay Jupyter (4.1.0) để nó hoạt động. Tôi đặt css ở trên~/.jupyter/custom/custom.css
Paul

6
100% trông không đẹp lắm, tôi đã đổi nó thành 90%
liang

69

Để làm việc này với jupyter (phiên bản 4.0.6) tôi đã tạo ~/.jupyter/custom/custom.csscó chứa:

/* 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;
}

Điều này hoạt động trong Linux! Nhưng tôi cần lưu nó ở đâu trong Windows?
thập tự chinh

6
Hãy thử chạy jupyter --config-dir, sau đó tạo custom\custom.cssở bất kỳ vị trí nào mà lệnh trả về.
jvd10

@ jvd10 điều này không làm việc cho tôi. Có custom.cssbất kỳ mã nào khác ngoài đoạn trích ở trên không? Ngoài ra làm thế nào để Jupyter biết sử dụng nó?
mLstudent33

Trên linux và osx ít nhất, theo mặc định, jupyter tìm một thư mục ẩn được gọi .jupytercho các tệp cấu hình bao gồm các tùy chỉnh như ở trên. Ở trên phải là nội dung duy nhất của custom.css. Xem tại đây để biết thêm thông tin: jupyter.readthedocs.io/en/latest/projects/ mẹo
jvd10

24

Đã đến lúc sử dụng jupyterlab

Cuối cùng, một bản nâng cấp rất cần thiết đã đến với máy tính xách tay. Theo mặc định, nó sử dụng toàn bộ chiều rộng của cửa sổ của bạn giống như bất kỳ IDE gốc chính thức nào khác.

Tât cả nhưng điêu bạn phải lam la:

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

Đây là một ảnh chụp màn hình từ blog.Jupyter.org


2
JupyterLab vẫn đang trong giai đoạn thử nghiệm và có một số hồi quy từ các notebook thông thường (theo thiết kế). Một điều đáng chú ý là cấm mặc định JS và cần các tiện ích mở rộng cho mỗi trực quan hóa nhỏ của JS
Ciprian Tomoiagă

1
Và làm thế nào bạn có thể thay đổi độ rộng của một tế bào Jupyter Lab?
đa cấp

1
Tôi đã vật lộn trong một giờ để làm cho phòng thí nghiệm jupyter hoạt động. lúc đầu không có đồ họa (pyplot / cốt truyện) được hiển thị. Các tài liệu không đề cập đến bạn phải cài đặt phần mở rộng cho điều đó. Đã thử cài đặt phần mở rộng âm mưu. phát hiện ra bạn cần nodejs cho điều đó. đã cài đặt cả hai, bây giờ tôi nhận được thông báo "Không thể tìm thấy mẫu:" index.html "". Tại thời điểm này tôi đã từ bỏ, tôi đang ở với máy tính xách tay jupyter.
Itamar Katz

15

Những gì tôi thường làm sau khi cài đặt mới là sửa đổi tệp css chính trong đó tất cả các kiểu trực quan được lưu trữ. Tôi sử dụng Miniconda nhưng vị trí tương tự với những người khácC:\Miniconda3\Lib\site-packages\notebook\static\style\style.min.css

Với một số màn hình, độ phân giải này khác nhau và hơn 1. Để đảm bảo an toàn, tôi thay đổi tất cả thành 98% vì vậy nếu tôi ngắt kết nối với màn hình ngoài trên máy tính xách tay của mình, tôi vẫn có chiều rộng màn hình 98%.

Sau đó, chỉ cần thay thế 1140px bằng 98% chiều rộng màn hình.

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

nhập mô tả hình ảnh ở đây

Sau khi chỉnh sửa

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

nhập mô tả hình ảnh ở đây Lưu và khởi động lại máy tính xách tay của bạn


Cập nhật

Gần đây đã phải mở rộng các tế bào Jupyter trên một môi trường được cài đặt, điều này khiến tôi quay lại đây và tự nhắc nhở mình.

Nếu bạn cần làm điều đó trong env ảo, bạn đã cài đặt jupyter trên. Bạn có thể tìm thấy tập tin css trong thư mục con này

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

1
Điều này thật tuyệt! Nó đơn giản và hoàn thành chính xác những gì cần thiết.
chuỗi ký tự tùy ý

@Gunay /notebookkhông tồn tại trong thư mục cho tôi.
mLstudent33

Bạn có biết phiên bản của python của bạn (python -V khi bạn kích hoạt môi trường của bạn) và bạn đã tạo env ảo như thế nào không? Bạn đã sử dụng mô-đun venv trên Python / Conda?
Gunay Anach

12

Bạn có thể đặt CSS của sổ ghi chép bằng cách gọi biểu định kiểu từ bất kỳ ô nào. Ví dụ, hãy xem khóa học 12 bước để Navier Stokes .

Cụ thể, tạo một tệp chứa

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

sẽ cho bạn một điểm khởi đầu. Tuy nhiên, cũng có thể cần phải điều chỉnh, ví dụ như div.text_cell_renderđể xử lý việc đánh dấu cũng như các ô mã.

Nếu tệp custom.cssđó là sau đó thêm một ô chứa:

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

Điều này sẽ áp dụng tất cả các kiểu dáng, và đặc biệt, thay đổi độ rộng của ô.


Điều này không hoạt động trong IPython mới nhất (phiên bản> 2). Kiểm tra câu trả lời này: stackoverflow.com/a/24207353/2108548
rominf

Hoặc nếu bạn chỉ muốn thay đổi nó cho máy tính xách tay hiện tại trong ipythons và jupyter gần đây, hãy xem câu trả lời của @ jjinking :)
nealmcb

8

(Kể từ năm 2018, tôi sẽ khuyên bạn nên dùng thử JupyterHub / JupyterLab. Nó sử dụng toàn bộ chiều rộng của màn hình. Nếu đây không phải là một tùy chọn, có thể vì bạn đang sử dụng một trong những nhà cung cấp dịch vụ Jupyter dựa trên đám mây, hãy đọc tiếp)

(Sành điệu bị buộc tội ăn cắp dữ liệu người dùng, thay vào đó tôi đã chuyển sang sử dụng plugin Stylus)

Tôi khuyên bạn nên sử dụng Plugin Trình duyệt thời trang . Bằng cách này, bạn có thể ghi đè css cho tất cả các sổ ghi chép mà không cần thêm bất kỳ mã nào vào sổ ghi chép. Chúng tôi không muốn thay đổi cấu hình trong .ipython / profile_default, vì chúng tôi đang chạy một máy chủ Jupyter được chia sẻ cho toàn nhóm và chiều rộng là tùy chọn của người dùng.

Tôi đã tạo một kiểu dành riêng cho màn hình độ phân giải cao theo chiều dọc, giúp các ô rộng hơn và thêm một chút khoảng trống ở phía dưới, để bạn có thể đặt ô cuối cùng ở giữa màn hình. https://userstyles.org/styles/131230/jupyter- Worldwide Tất nhiên, bạn có thể sửa đổi css của tôi theo ý thích của bạn, nếu bạn có bố cục khác hoặc cuối cùng bạn không muốn có thêm không gian trống.

Cuối cùng nhưng không kém phần quan trọng, Sành điệu là một công cụ tuyệt vời cần có trong bộ công cụ của bạn, vì bạn có thể dễ dàng tùy chỉnh các trang web / công cụ khác theo ý thích của mình (ví dụ: Jira, Podio, Slack, v.v.)

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

.end_space {
  height: 800px;
}

vâng, sành điệu là tuyệt vời Bạn có thể vui lòng thêm mã cần thiết cho không gian thêm ở phía dưới không? Tôi luôn có một ô trống có nhiều dòng trống để có ô cuối cùng thực sự ở giữa -_-.
Ciprian Tomoiagă

2
Sành điệu đã bị gỡ xuống ngày hôm qua vì đánh cắp lịch sử duyệt web của người dùng: gadgets.ndtv.com/iNET/news/iêu
stason

6

Đối với người dùng Chrome, tôi khuyên dùng Stylebot , sẽ cho phép bạn ghi đè bất kỳ CSS nào trên bất kỳ trang nào, cũng cho phép bạn tìm kiếm và cài đặt CSS tùy chỉnh chia sẻ khác. Tuy nhiên, với mục đích của chúng tôi, chúng tôi không cần bất kỳ chủ đề trước. Mở Stylebot, đổi thành Edit CSS. Jupyter chụp một số tổ hợp phím, do đó bạn sẽ không thể nhập mã bên dưới. Chỉ cần sao chép và dán hoặc chỉ trình soạn thảo của bạn:

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

Thay đổi chiều rộng như bạn muốn, tôi thấy 90% trông đẹp hơn 100%. Nhưng nó hoàn toàn phụ thuộc vào mắt của bạn.


Gợi ý tuyệt vời cho máy tính xách tay jupyter nhưng còn nhiều hơn thế nữa!
Robino

@bizi, tôi có nhấp vào bên trong một ô mã và sau đó nhấp chuột phải, chọn Stylebot, chỉnh sửa CSS và sao chép và dán những gì bạn có không? Nếu vậy, nó đã không làm việc cho tôi. Tôi chỉ có lợi nhuận cao hơn ở cả hai bên.
mLstudent33

4

Đây là mã tôi đã sử dụng. Nó kéo dài các ô đầu vào và đầu ra ở bên trái và bên phải. Lưu ý rằng chỉ báo số đầu vào / đầu ra sẽ biến mất:

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>"))

mát mẻ! Tôi sẽ chỉ loại trừ dòng cuối cùng vì nó làm cho thông tin thực thi các ô biến mất (các ô còn lại, phần này hiển thị thứ tự thực hiện và dấu * khi việc thực thi chưa kết thúc)
onofricamila

2

Tôi đã thực hiện một số sửa đổi cho giải pháp của @ jvd10. '! Quan trọng' dường như quá mạnh khiến container không thích ứng tốt khi thanh bên TOC được hiển thị. Tôi đã xóa nó và thêm 'min-width' để giới hạn chiều rộng tối thiểu.

Đây là .juyputer / custom / custom.css của tôi:

/* 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

Tôi đã thử mọi thứ và không có gì hiệu quả với tôi, cuối cùng tôi đã sử dụng hiển thị khung dữ liệu của mình dưới dạng HTML như sau

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

-1

Đối với người dùng Firefox / Chrome, một cách hay để đạt được chiều rộng 100% là sử dụng tập lệnh TamperMonkey tùy chỉnh .

Những lợi ích là

  1. cấu hình cái này một lần trong trình duyệt của bạn, không cần sửa đổi cấu hình máy chủ.
  2. hoạt động với nhiều máy chủ jupyter.
  3. TamperMonkey được tin cậy, duy trì và ổn định.
  4. Rất nhiều tùy chỉnh bổ sung có thể thông qua javascript.

Kịch bản này hoạt động với tôi https://gist.githubusercontent.com/mrk-andreev/2a9c2538fad0b687c27e192d5948834f/raw/6aa1148573dc20a22fca126e56e3b03f4abf281b

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.