IPython Notebook'u her başlattığımda çalıştırdığım ilk komut
%matplotlib inline
IPython'u başlattığımda otomatik olarak bu modda olacak şekilde yapılandırma dosyamı değiştirmenin bir yolu var mı?
IPython Notebook'u her başlattığımda çalıştırdığım ilk komut
%matplotlib inline
IPython'u başlattığımda otomatik olarak bu modda olacak şekilde yapılandırma dosyamı değiştirmenin bir yolu var mı?
ipython --matplotlib
daha iyi
Yanıtlar:
IPython, adresinde bulunan konfigürasyon profillerine sahiptir ~/.ipython/profile_*
. Varsayılan profil denir profile_default
. Bu klasörde iki ana yapılandırma dosyası vardır:
ipython_config.py
ipython_kernel_config.py
Matplotlib için satır içi seçeneğini şuraya ekleyin ipython_kernel_config.py
:
c = get_config()
# ... Any other configurables you want to set
c.InteractiveShellApp.matplotlib = "inline"
Kullanımı %pylab
satır içi komplo olup gitmek cesaretini .
Ad alanınıza ihtiyacınız olmayan her tür gunku getirir.
%matplotlib
diğer yandan ad alanınızı enjekte etmeden satır içi çizimi etkinleştirir. Matplotlib ve numpy içe aktarmak için açık çağrılar yapmanız gerekecek.
import matplotlib.pyplot as plt
import numpy as np
İçe aktarımlarınızı açıkça yazmanın küçük bedeli, artık yeniden üretilebilir koda sahip olduğunuz gerçeğiyle tamamen aşılmalıdır.
%matplotlib
arandıktan sonra etkili olacak matplotlib arka ucunu ayarlayıp ayarlamadığından veya hem varsayılan arka ucu ayarlayıp hem de otomatik olarak hemen kullanım için ayarlayıp ayarlamadığından emin değildim . iPython ortamı.
matplotlib
vs ile ilgili düzenlemesine eklemek için, iPython pylab
, Profiller'i her başlattığınızda rastgele python kodunu otomatik olarak çalıştırmayı çok kolaylaştırır. İnanıyorum ki import numpy as np; import pandas as pd; import matplotlib.pyplot as plt
, vb. Gibi ortak ithalatları otomatik olarak yaptığınız bir profile sahip olmanın oldukça yaygın olduğuna inanıyorum . Not: pylab
ile aynı şey değildirpyplot
. Bunu anlamam bir ayımı almış olmalı.
c.InteractiveShellApp.matplotlib = "inline"
Sanırım istediğin şey, komut satırından aşağıdakileri çalıştırmak olabilir:
ipython notebook --matplotlib=inline
Her seferinde cmd satırına yazmayı sevmiyorsanız, sizin için yapmak için bir takma ad oluşturabilirsiniz.
--matplotlib inline
--pylab olarak değiştirin ve kaldırın. Bir ipython geliştiricisinin neden bu gönderisine bakın: carreau.github.io/posts/10-No-PyLab-Thanks.ipynb.html
matplotlib=inline
: Matplotlib'i kullanmak isteyip istemediğinize bakılmaksızın, başlattığınız her çekirdeği yavaşlatacaktır.
--matplotlib
veya --pylab
yok sayılır.
%pylab
veya %matplotlib
kullanılması gerektiğini söylüyor .
Ayar, Jupyter 5.X
aşağıdaki kod eklenerek ve üzerinde devre dışı bırakıldı
pylab = Unicode('disabled', config=True,
help=_("""
DISABLED: use %pylab or %matplotlib in the notebook to enable matplotlib.
""")
)
@observe('pylab')
def _update_pylab(self, change):
"""when --pylab is specified, display a warning and exit"""
if change['new'] != 'warn':
backend = ' %s' % change['new']
else:
backend = ''
self.log.error(_("Support for specifying --pylab on the command line has been removed."))
self.log.error(
_("Please use `%pylab{0}` or `%matplotlib{0}` in the notebook itself.").format(backend)
)
self.exit(1)
Ve önceki sürümlerde büyük ölçüde bir uyarı oldu. Ancak bu büyük bir sorun değil çünkü Jupyter, kavramlarını kullanıyor kernels
ve aşağıdaki komutu çalıştırarak projeniz için çekirdeği bulabilirsiniz.
$ jupyter kernelspec list
Available kernels:
python3 /Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3
Bu bana çekirdek klasörünün yolunu veriyor. Şimdi /Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3/kernel.json
dosyayı açarsam, aşağıdaki gibi bir şey görüyorum
{
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}",
],
"display_name": "Python 3",
"language": "python"
}
Böylece, çekirdeği başlatmak için hangi komutun çalıştırıldığını görebilirsiniz. Yani aşağıdaki komutu çalıştırırsanız
$ python -m ipykernel_launcher --help
IPython: an enhanced interactive Python shell.
Subcommands
-----------
Subcommands are launched as `ipython-kernel cmd [args]`. For information on
using subcommand 'cmd', do: `ipython-kernel cmd -h`.
install
Install the IPython kernel
Options
-------
Arguments that take values are actually convenience aliases to full
Configurables, whose aliases are listed on the help line. For more information
on full configurables, see '--help-all'.
....
--pylab=<CaselessStrEnum> (InteractiveShellApp.pylab)
Default: None
Choices: ['auto', 'agg', 'gtk', 'gtk3', 'inline', 'ipympl', 'nbagg', 'notebook', 'osx', 'pdf', 'ps', 'qt', 'qt4', 'qt5', 'svg', 'tk', 'widget', 'wx']
Pre-load matplotlib and numpy for interactive use, selecting a particular
matplotlib backend and loop integration.
--matplotlib=<CaselessStrEnum> (InteractiveShellApp.matplotlib)
Default: None
Choices: ['auto', 'agg', 'gtk', 'gtk3', 'inline', 'ipympl', 'nbagg', 'notebook', 'osx', 'pdf', 'ps', 'qt', 'qt4', 'qt5', 'svg', 'tk', 'widget', 'wx']
Configure matplotlib for interactive use with the default matplotlib
backend.
...
To see all available configurables, use `--help-all`
Şimdi kernel.json
dosyamızı şu şekilde güncellersek
{
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}",
"--pylab",
"inline"
],
"display_name": "Python 3",
"language": "python"
}
Ve çalıştırırsam jupyter notebook
grafikler otomatik olarakinline
Aşağıdaki yolda bir dosya oluşturduğunuzda, aşağıdaki yaklaşımın hala çalıştığını unutmayın.
~ / .ipython / profile_default / ipython_kernel_config.py
c = get_config()
c.IPKernelApp.matplotlib = 'inline'
Ancak bu yaklaşımın dezavantajı, bunun python kullanan her ortam üzerinde küresel bir etki olmasıdır. Tek bir değişiklikle ortamlar arasında ortak bir davranışa sahip olmak istiyorsanız, bunu bir avantaj olarak da düşünebilirsiniz.
Bu nedenle, ihtiyacınıza göre hangi yaklaşımı kullanmak istediğinizi seçin
Senin içinde ipython_config.py
dosyaya, aşağıdaki satırları aramak
# c.InteractiveShellApp.matplotlib = None
ve
# c.InteractiveShellApp.pylab = None
ve yorum yapmayın. Ardından, None
kullandığınız arka uca geçin (kullanıyorum 'qt4'
) ve dosyayı kaydedin. IPython'u yeniden başlatın ve matplotlib ve pylab yüklenmelidir - dir()
hangi modüllerin genel ad alanında olduğunu doğrulamak için komutu kullanabilirsiniz .
@Kyle Kelley ve @DGrady'ye ek olarak, burada bulabileceğiniz giriş
$HOME/.ipython/profile_default/ipython_kernel_config.py
(veya hangi profili oluşturduysanız)
Değişiklik
# Configure matplotlib for interactive use with the default matplotlib backend.
# c.IPKernelApp.matplotlib = none
-e
# Configure matplotlib for interactive use with the default matplotlib backend.
c.IPKernelApp.matplotlib = 'inline'
Bu daha sonra hem ipython qtconsole hem de notebook oturumlarında çalışacaktır.