質問編集履歴

2

dfのサンプルと、グラフの画像2つを追加しました。

2021/01/10 00:29

投稿

Kumazaemon
Kumazaemon

スコア5

test CHANGED
File without changes
test CHANGED
@@ -1,18 +1,58 @@
1
1
  インデックスが時系列データ(列ラベルがtime)で、5つの列が含まれた1つのデータフレーム(df)があります。
2
+
3
+
4
+
5
+ こちらがdfの冒頭部分です(行はずっと続く)。
6
+
7
+
8
+
9
+ |列1|列2|列3|列4|列5|列6|
10
+
11
+ |:--|:--:|--:|
12
+
13
+ ||A|B|C|D|E|F|
14
+
15
+ |time||||||
16
+
17
+ |2019-12-16|8.4|22.1|22.3|21.6|20.8|
18
+
19
+ |2019-12-17|11.4|21.7|23.0|21.3|20.5|
20
+
21
+ |2019-12-18|11.3|22.6|23.0|22.3|20.8|
22
+
23
+ |2019-12-19|7.8|20.9|22.0|20.5|20.3|
24
+
25
+ |2019-12-20|8.2|24.4|24.2|23.7|21.1|
26
+
27
+
2
28
 
3
29
  df.plot()
4
30
 
5
31
  とすると、X軸にはインデックスが入り、インデックス名(time)がX軸名として表示されます。
6
32
 
33
+ (すみません、PC画面ではX軸の下にtimeと表示されているのですが、savefigしたら切れてしまっています。timeの頭の先っぽだけ見えています…)
34
+
35
+
36
+
37
+ ![今の状態](73407d8b50f8e09d437bebd274ad9cd7.png)
38
+
39
+
40
+
7
- 5つの列はすべて異なる場所の温度を表しているので、temperature [degC] のようなY軸名を表示させたいですが、plotの引数を見てもできそうにありません
41
+ Y軸にも'temperature'のような名を表示(新規追加)させたいです。
42
+
43
+ pandas.plotの引数を見てもできそうにありません。
8
44
 
9
45
  seabornでも見てみましたが、なさそうです。
10
46
 
11
47
 
12
48
 
13
- matplotlibでは以下でできましたが、データフレームのほかの情報(特に凡例)が反映されず、作業が増えます。
49
+ matplotlibでは以下でできます。
50
+
51
+ しかし、データフレームのほかの情報(特に凡例)が反映されず(=pandas.plotではすでに認識されているlegendを再設定しなくてはならず)作業が増えるので、pandas.plotで目的が果たされるならば、避けたいです。
14
52
 
15
53
 
54
+
55
+ ```python
16
56
 
17
57
  fig = plt.figure()
18
58
 
@@ -20,11 +60,15 @@
20
60
 
21
61
  ax.plot(df)
22
62
 
23
- ax.set_ylabel('y_label')
63
+ ax.set_ylabel('temperature')
24
64
 
65
+ ```
25
66
 
67
+ ![goal](3b02770035a66e3427640e2a727a3642.png)
26
68
 
27
- pandasやseabornなどのpandasデータフレームを活用した可視化手法で、Y軸名を記す方法はないのでしょうか。
69
+ pandasやseabornなどのpandasデータフレームをダイレクトに使った可視化手法で、Y軸名を記す方法はないのでしょうか。
70
+
71
+ (もしかしたら、データフレームの工夫などでできるのかも、と思ってお尋ねしています)
28
72
 
29
73
 
30
74
 

1

matplotlibで出来たことを記載しました。

2021/01/10 00:28

投稿

Kumazaemon
Kumazaemon

スコア5

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,23 @@
8
8
 
9
9
  seabornでも見てみましたが、なさそうです。
10
10
 
11
+
12
+
11
- matplotlibでは出来そうなのが、ググってもちんぷんんぷんです。
13
+ matplotlibでは以下できましたが、データフレームのほの情報(特に凡例)が反映されず、作業が増えます。
14
+
15
+
16
+
17
+ fig = plt.figure()
18
+
19
+ ax = fig.add_subplot(1,1,1)
20
+
21
+ ax.plot(df)
22
+
23
+ ax.set_ylabel('y_label')
24
+
25
+
26
+
27
+ pandasやseabornなどのpandasデータフレームを活用した可視化手法で、Y軸名を記す方法はないのでしょうか。
12
28
 
13
29
 
14
30