سألت عن SO وأعيد إنتاجها هنا. دفتر ملاحظات به خليتان:
في 1]
import numpy as np
import matplotlib.pyplot as plt
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all";
في 2]
%matplotlib inline
data ={'first':np.random.rand(100),
'second':np.random.rand(100)}
fig, axes = plt.subplots(2)
for idx, k in enumerate(data):
axes[idx].hist(data[k], bins=20);
لا يمنع إخراج plt.hist()
:
الإخراج من python -c "import IPython; print(IPython.sys_info())"
{'commit_hash': 'd86648c5d',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path': '/Users/okomarov/anaconda/lib/python3.6/site-packages/IPython',
'ipython_version': '6.1.0',
'os_name': 'posix',
'platform': 'Darwin-16.7.0-x86_64-i386-64bit',
'sys_executable': '/Users/okomarov/anaconda/bin/python3',
'sys_platform': 'darwin',
'sys_version': '3.6.2 |Anaconda custom (x86_64)| (default, Jul 20 2017, '
'13:14:59) \n'
'[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]'}
لقد قمت بتعيين InteractiveShell.ast_node_interactivity = "all";
، لذلك قمت بتعيين جميع العقد لتمكين التفاعل الذكي.
و ;
يعمل فقط مع آخر تعبير من المستوى الأعلى ، axes[idx].hist(data[k], bins=20);
ليس مستوى أعلى ، لأنه متداخل في for
، آخر عقدة من المستوى الأعلى هي for
وهو بيان.
ما عليك سوى إضافة عبارة عدم التشغيل الأخيرة ، وإنهائها بـ ;
%matplotlib inline
data ={'first':np.random.rand(100),
'second':np.random.rand(100)};
fig, axes = plt.subplots(2);
for idx, k in enumerate(data):
axes[idx].hist(data[k], bins=20)
pass;
ولن يكون لديك أي نواتج.
Carreau شكرا للتوضيح!
لم أتمكن من العثور على معلومات حول:
و ؛ يعمل فقط مع آخر تعبير من المستوى الأعلى
هل هذا موثق في مكان ما؟ هل ترغب في نسخ ولصق إجابتك في SO ، حتى يمكنني قبولها؟
هل هذا موثق في مكان ما؟
على الأرجح لا ، نادرًا ما يتم استخدام الخيار ast_interactivity
لدرجة أننا لا نهتم حقًا بالتمييز ، حيث إن حالة الاستخدام الأكثر استخدامًا هي للتعبير الأخير فقط.
هل ترغب في نسخ ولصق إجابتك ، حتى يمكنني قبولها؟
فعلت بالفعل ، مع بعض التفاصيل الأخرى :-)
التعليق الأكثر فائدة
لقد قمت بتعيين
InteractiveShell.ast_node_interactivity = "all";
، لذلك قمت بتعيين جميع العقد لتمكين التفاعل الذكي.و
;
يعمل فقط مع آخر تعبير من المستوى الأعلى ،axes[idx].hist(data[k], bins=20);
ليس مستوى أعلى ، لأنه متداخل فيfor
، آخر عقدة من المستوى الأعلى هيfor
وهو بيان.ما عليك سوى إضافة عبارة عدم التشغيل الأخيرة ، وإنهائها بـ
;
ولن يكون لديك أي نواتج.