回答編集履歴
1
間違い修正と説明追加
answer
CHANGED
@@ -4,21 +4,46 @@
|
|
4
4
|
|
5
5
|
pandasががmatplotlibをimportしている場所は、
|
6
6
|
|
7
|
-
*/Lib/site-packages/pandas/plotting/_core.py
|
7
|
+
~~*/Lib/site-packages/pandas/plotting/_core.py~~
|
8
|
-
|
8
|
+
*/Lib/site-packages/pandas/plotting/_matplotlib/__init__.py
|
9
9
|
```python
|
10
|
+
def plot(data, kind, **kwargs):
|
11
|
+
# Importing pyplot at the top of the file (before the converters are
|
12
|
+
# registered) causes problems in matplotlib 2 (converters seem to not
|
13
|
+
# work)
|
10
|
-
import
|
14
|
+
import matplotlib.pyplot as plt
|
15
|
+
```
|
11
|
-
|
16
|
+
とかです。
|
12
17
|
|
13
|
-
|
18
|
+
理由2 matplotlibは描画関数の後でも軸などの設定ができる。
|
14
19
|
|
15
|
-
|
20
|
+
これはmatplotlibの仕様です。
|
21
|
+
matplotlibのいくつかの機能を使うためにはをdf.plotの前matplotlibの関数を使って準備しておく必要があり場合もあります。
|
22
|
+
|
23
|
+
1点目
|
16
|
-
|
24
|
+
上記の_core.pyは、import pandasの際に読み込まれるのでしょうか。
|
25
|
+
|
26
|
+
plotが最初に呼ばれたときです。
|
27
|
+
|
17
|
-
|
28
|
+
2点目
|
29
|
+
もしimport pandasにより、matplotlibが同時にimportされるのなら、あえてimport matplotlibを(jupyterNotebookの)セルに記述する必要は、ないのでは、ないでしょうか。
|
30
|
+
|
31
|
+
Pythonにimportされるのと、それにある名前を使ってアクセスできるのは違います。
|
32
|
+
明にimportせずに使う方法はありますが不便です。以下のように
|
33
|
+
|
34
|
+
```python
|
35
|
+
df.plot()
|
36
|
+
impot sys
|
37
|
+
sys.modules['matplotlib.pyplot'].xlabel('訪問回数')
|
38
|
+
sys.modules['matplotlib.pyplot'].show()
|
18
39
|
```
|
19
|
-
|
40
|
+
とか書けば動作はしますが、やりたくないでしょう。
|
20
41
|
|
21
|
-
|
42
|
+
一般的にモジュールをimportした場合、そのモジュールがまだimportされていなければそのモジュールを読み込みますが、既に読み込まれている場合は読み込み済みのモジュールを指定された名前に束縛(bind)するだけです。
|
22
43
|
|
23
|
-
|
44
|
+
既にmatplotlibがどこかでimportされているなら、
|
45
|
+
import matplotlib.pyplot as plt
|
46
|
+
と
|
47
|
+
impot sys
|
24
|
-
|
48
|
+
plt = sys.modules['matplotlib.pyplot']
|
49
|
+
は全く同じ意味ですので、普通は前者を使います。
|