Bagaimana cara meningkatkan lebar sel notebook Jupyter / ipython di browser saya?

350

Saya ingin menambah lebar notebook ipython di browser saya. Saya memiliki layar resolusi tinggi, dan saya ingin memperluas lebar sel / ukuran untuk memanfaatkan ruang ekstra ini.

Terima kasih!


sunting: 5/2017

Saya sekarang menggunakan jupyterthemes: https://github.com/dunovank/jupyter-themes

dan perintah ini:

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

yang menetapkan lebar hingga 100% dengan tema yang bagus.

vgoklani
sumber
1
Coba np.set_printoptions (250)
vgoklani
2
Terima kasih! np.set_printoptions(linewidth=110)bekerja untukku.
Timo
1
@vgoklani Maaf, tapi 'np'? Dari mana datangnya?
Brandt
1
@Brandt mengimpor numpy sebagai np
vgoklani
3
@vgoklani +1 untuk Tema Jupyter
Gursharan Singh

Jawaban:

615

Jika Anda tidak ingin mengubah pengaturan default Anda, dan Anda hanya ingin mengubah lebar buku catatan saat ini yang sedang Anda kerjakan, Anda dapat memasukkan yang berikut ke dalam sel:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
jjinking
sumber
11
Bagus. Sepertinya ini hanya mengubah sel kode / penurunan harga. Apakah ada cara untuk melakukan sel keluaran?
dreyco676
13
Solusi ini berhasil untuk saya! Saya tidak perlu menginstal lib atau paket apa pun untuk menggunakannya.
Bill Ancalagon the black
1
Saya menggunakan Jupyter untuk Julia. Apakah Anda tahu apa yang saya butuhkan dalam kasus ini?
becko
68
Ini telah mengubah hidup saya
YellowPillow
1
@becko menurut wacana julia ini bekerja:display("text/html", "<style>.container { width:100% !important; }</style>")
Liso
209

Itu div.cellsolusi tidak benar-benar bekerja pada IPython saya, namun untungnya seseorang menyarankan solusi yang bekerja untuk IPythons baru:

Buat file ~/.ipython/profile_default/static/custom/custom.css(iPython) atau ~/.jupyter/custom/custom.css(Jupyter) dengan konten

.container { width:100% !important; }

Kemudian restart notebook iPython / Jupyter. Perhatikan bahwa ini akan memengaruhi semua notebook.

Gerenuk
sumber
5
Potongan kecil informasi ini harus diposting di suatu tempat, terima kasih lagi!
vgoklani
4
Ini sangat berguna
ivrin
13
Mulai IPython 4.1 lokasi folder kustom telah berubah menjadi ~/.jupyter/custom/.
Romain
6
Saya harus memulai ulang notebook Jupyter (4.1.0) agar berfungsi. Saya memasukkan css di atas~/.jupyter/custom/custom.css
Paul
6
100% tidak terlihat bagus, saya mengubahnya menjadi 90%
liang
69

Agar ini berfungsi dengan jupyter (versi 4.0.6) yang saya buat ~/.jupyter/custom/custom.cssmengandung:

/* 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;
}
jvd10
sumber
Ini berfungsi di Linux! Tapi di mana saya harus menyimpannya di Windows?
crusaderky
6
Coba jalankan jupyter --config-dir, lalu buat custom\custom.cssdi lokasi apa pun yang kembali perintah.
jvd10
@ jvd10 ini tidak berfungsi untuk saya. Apakah custom.cssada kode lain selain potongan di atas? Juga, bagaimana Jupyter tahu untuk menggunakannya?
mLstudent33
Di linux dan osx setidaknya, secara default jupyter mencari direktori tersembunyi yang dipanggil .jupyteruntuk file konfigurasi termasuk penyesuaian seperti di atas. Yang di atas harus menjadi satu-satunya konten custom.css. Lihat di sini untuk info lebih lanjut: jupyter.readthedocs.io/en/latest/projects/…
jvd10
24

Saatnya menggunakan jupyterlab

Akhirnya, upgrade yang sangat dibutuhkan telah datang ke notebook. Secara default, ia menggunakan lebar penuh jendela Anda seperti IDE asli lengkap lainnya.

Yang harus Anda lakukan adalah:

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

Ini screenshot dari blog.Jupyter.org

Thamme Gowda
sumber
2
JupyterLab masih dalam versi beta dan memiliki beberapa regresi dari notebook biasa (sesuai desain). Salah satu yang terkenal adalah melarang JS secara default dan membutuhkan ekstensi untuk setiap visualisasi JS kecil
Ciprian Tomoiagă
1
Dan bagaimana Anda bisa mengubah lebar sel Lab Jupyter?
multigoodverse
1
Saya telah berjuang selama satu jam membuat lab jupyter bekerja. pada awalnya tidak ada grafik (pyplot / plotly) yang ditampilkan. Dokumen tidak menyebutkan Anda harus menginstal ekstensi untuk itu. Mencoba memasang ekstensi plotly. menemukan Anda perlu nodejs untuk itu. diinstal keduanya, sekarang saya mendapatkan pesan "Tidak dapat menemukan templat:" index.html "". Pada titik ini saya menyerah, saya tinggal dengan notebook jupyter.
Itamar Katz
15

Apa yang saya lakukan biasanya setelah instalasi baru adalah untuk memodifikasi file css utama di mana semua gaya visual disimpan. Saya menggunakan Miniconda tetapi lokasinya mirip dengan yang lainC:\Miniconda3\Lib\site-packages\notebook\static\style\style.min.css

Dengan beberapa layar resolusi ini berbeda dan lebih dari 1. Untuk berada di sisi aman saya mengubah semuanya menjadi 98% jadi jika saya putuskan sambungan dari layar eksternal saya di laptop saya, saya masih memiliki lebar layar 98%.

Kemudian ganti saja 1140px dengan 98% dari lebar layar.

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

masukkan deskripsi gambar di sini

Setelah diedit

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

masukkan deskripsi gambar di sini Simpan dan mulai ulang notebook Anda


Memperbarui

Baru-baru ini harus lebih luas sel Jupyter pada lingkungan yang diinstal, yang membuat saya kembali ke sini dan mengingatkan diri sendiri.

Jika Anda perlu melakukannya di virtual env Anda menginstal jupyter. Anda dapat menemukan file css di subdir ini

env/lib/python3.6/site-packages/notebook/static/style/stye.min.css
Gunay Anach
sumber
1
Ini luar biasa! Ini sederhana dan memenuhi apa yang dibutuhkan.
arbitrarystringofletters
@ Gayay /notebooktidak ada di direktori untuk saya.
mLstudent33
Apakah Anda tahu versi python Anda (python -V ketika Anda mengaktifkan lingkungan Anda) dan bagaimana Anda membuat env virtual? Apakah Anda menggunakan modul venv di Python / Conda?
Gunay Anach
12

Anda dapat mengatur CSS notebook dengan memanggil stylesheet dari sel apa pun. Sebagai contoh, lihatlah kursus 12 Steps to Navier Stokes .

Secara khusus, membuat file yang mengandung

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

harus memberi Anda titik awal. Namun, mungkin perlu juga menyesuaikan misalnya div.text_cell_renderuntuk menangani penurunan harga serta sel kode.

Jika file itu custom.csskemudian tambahkan sel yang mengandung:

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

Ini akan menerapkan semua stylings, dan, khususnya, mengubah lebar sel.

Ian
sumber
Ini tidak berfungsi di IPython terbaru (versi> 2). Periksa jawaban ini: stackoverflow.com/a/24207353/2108548
rominf
Atau jika Anda hanya ingin mengubahnya untuk notebook saat ini di ipythons dan jupyter baru-baru ini, lihat jawaban @ jjinking :)
nealmcb
8

(Pada tahun 2018, saya akan menyarankan untuk mencoba JupyterHub / JupyterLab. Ini menggunakan lebar penuh monitor. Jika ini bukan pilihan, mungkin karena Anda menggunakan salah satu penyedia layanan Jupyter-as-a-layanan berbasis cloud, terus membaca)

(Stylish dituduh mencuri data pengguna, saya telah beralih menggunakan plugin Stylus sebagai gantinya)

Saya sarankan menggunakan Plugin Browser Bergaya . Dengan cara ini Anda dapat mengganti css untuk semua notebook, tanpa menambahkan kode apa pun ke notebook. Kami tidak suka mengubah konfigurasi di .ipython / profile_default, karena kami menjalankan server Jupyter bersama untuk seluruh tim dan lebar adalah preferensi pengguna.

Saya membuat gaya khusus untuk layar beresolusi tinggi yang berorientasi vertikal, yang membuat sel lebih luas dan menambahkan sedikit ruang kosong di bagian bawah, sehingga Anda dapat memposisikan sel terakhir di tengah layar. https://userstyles.org/styles/131230/jupyter-wide Anda tentu saja dapat memodifikasi css saya sesuai keinginan Anda, jika Anda memiliki tata letak yang berbeda, atau Anda tidak ingin ruang kosong tambahan pada akhirnya.

Last but not least, Stylish adalah alat yang hebat untuk dimiliki di perangkat Anda, karena Anda dapat dengan mudah menyesuaikan situs / alat lain sesuai keinginan Anda (misalnya Jira, Podio, Slack, dll.)

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

.end_space {
  height: 800px;
}
volodymyr
sumber
ya, Gaya itu hebat! Bisakah Anda menambahkan kode yang diperlukan untuk ruang ekstra di bagian bawah? Saya selalu memiliki sel kosong dengan banyak baris kosong agar sel terakhir benar-benar berpusat -_-.
Ciprian Tomoiagă
2
Stylish dihapus kemarin karena mencuri riwayat penjelajahan pengguna: gadgets.ndtv.com/internet/news/…
stason
6

Untuk pengguna Chrome, saya sarankan Stylebot , yang akan membiarkan Anda menimpa CSS apa pun di halaman mana pun, juga memungkinkan Anda mencari dan menginstal CSS ubahsuaian berbagi lainnya. Namun, untuk tujuan kita, kita tidak perlu tema lanjutan. Buka Stylebot, ubah ke Edit CSS. Jupyter menangkap beberapa penekanan tombol, jadi Anda tidak akan bisa mengetikkan kode di bawah ini. Cukup salin dan tempel, atau hanya editor Anda:

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

Ubah lebar sesuka Anda, saya menemukan 90% terlihat lebih bagus dari 100%. Tapi itu sepenuhnya terserah Anda.

bizi
sumber
Saran yang luar biasa untuk notebook jupyter tetapi melakukan lebih banyak lagi!
Robino
@ Bizi, apakah saya klik di dalam sel kode dan kemudian klik kanan, pilih Stylebot, edit CSS dan salin dan rekatkan apa yang Anda miliki? Jika demikian, itu tidak berhasil untuk saya. Saya baru saja mendapat margin yang lebih besar di kedua sisi.
mLstudent33
4

Ini adalah kode yang akhirnya saya gunakan. Ini membentang sel input & output ke kiri dan kanan. Perhatikan bahwa indikasi nomor input / output akan hilang:

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>"))
AaronDT
sumber
keren! Saya hanya akan mengecualikan baris terakhir karena itu membuat informasi eksekusi sel hilang (sel meninggalkan bagian, yang menunjukkan perintah eksekusi dan * ketika eksekusi belum selesai)
onofricamila
2

Saya membuat beberapa modifikasi pada solusi @ jvd10. '! Penting' tampaknya terlalu kuat sehingga wadah tidak beradaptasi dengan baik ketika sidebar TOC ditampilkan. Saya menghapusnya dan menambahkan 'min-width' untuk membatasi lebar minimal.

Inilah .juyputer / custom / custom.css saya:

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

Saya mencoba semuanya dan tidak ada yang berhasil untuk saya, saya akhirnya menggunakan menampilkan bingkai data saya sebagai HTML sebagai berikut

from IPython.display import HTML    
HTML (pd.to_html())
smishra
sumber
-1

Untuk pengguna Firefox / Chrome, cara yang bagus untuk mencapai lebar 100% adalah dengan menggunakan skrip TamperMonkey khusus .

Manfaatnya adalah

  1. konfigurasikan ini sekali di browser Anda, tidak perlu memodifikasi konfigurasi server.
  2. bekerja dengan beberapa server jupyter.
  3. TamperMonkey dipercaya, dirawat, dan stabil.
  4. Banyak penyesuaian tambahan dimungkinkan melalui javascript.

Skrip ini berfungsi untuk saya https://gist.githubusercontent.com/mrk-andreev/2a9c2538fad0b687c27e192d5948834f/raw/6aa1148573dc20a22fca126e56e3b03f4abf281b/jpn_tmonkey.js

Maksim
sumber