質問編集履歴
6
追加の質問を投稿してしまったので削除します。
test
CHANGED
File without changes
|
test
CHANGED
@@ -85,7 +85,5 @@
|
|
85
85
|
plt.title(columns[i])
|
86
86
|
plt.show()
|
87
87
|
```
|
88
|
-
追加で質問があるのですが、応用として
|
89
|
-
特定の複数の列を一つのグラフに重ねてプロットしたい場合、どのようにコーディングすれば良いのでしょうか。
|
90
|
-
宜しくお願い致します。
|
91
88
|
|
89
|
+
|
5
追加の質問、コメント
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,6 +40,7 @@
|
|
40
40
|
良いのでしょうか。
|
41
41
|
宜しくお願い致します。
|
42
42
|
|
43
|
+
追記
|
43
44
|
列ごとに個別の設定をするのはコードがかなり長くなるため、
|
44
45
|
for文を用いてアレンジしたいと考えております。
|
45
46
|
|
@@ -63,3 +64,28 @@
|
|
63
64
|
また、上記のコードでは、0,0に表示されるグラフだけタイトルが表示されません。
|
64
65
|
これらはどのように解決できるでしょうか。
|
65
66
|
宜しくお願い致します。
|
67
|
+
|
68
|
+
追記
|
69
|
+
追加でご回答ありがとうございます。
|
70
|
+
タイトルだけ個別で設定すると冗長になるように思ったので、下記のように変更しました。
|
71
|
+
columnsという変数に項目名を入れたリストを作成しております。
|
72
|
+
```Python
|
73
|
+
columns = df.columns
|
74
|
+
fig = plt.figure(figsize = (40, 80), tight_layout=True) # グラフサイズ(幅、高さ)
|
75
|
+
for col in range(df.shape[1]):
|
76
|
+
plt.subplot(12, 2, col+1)
|
77
|
+
plt.plot(df.iloc[:, col])
|
78
|
+
# plt.title("No." + str(col)) # 列Noをタイトル
|
79
|
+
plt.ticklabel_format(style="plain", axis="y", scilimits=(0, 0)) # eを使わない表現
|
80
|
+
plt.gca().get_yaxis().set_major_formatter(ticker.FuncFormatter(lambda v,p: f'{int(v):,d}')) # 3桁ごとにカンマで区切る
|
81
|
+
plt.grid()
|
82
|
+
# 列毎の個別設定 (必要なら)
|
83
|
+
for i in range(len(columns)):
|
84
|
+
if col == i:
|
85
|
+
plt.title(columns[i])
|
86
|
+
plt.show()
|
87
|
+
```
|
88
|
+
追加で質問があるのですが、応用として
|
89
|
+
特定の複数の列を一つのグラフに重ねてプロットしたい場合、どのようにコーディングすれば良いのでしょうか。
|
90
|
+
宜しくお願い致します。
|
91
|
+
|
4
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,10 +56,10 @@
|
|
56
56
|
plt.gca().get_yaxis().set_major_formatter(ticker.FuncFormatter(lambda v,p: f'{int(v):,d}'))
|
57
57
|
plt.show()
|
58
58
|
```
|
59
|
-
上記のように変更すると
|
59
|
+
上記のように変更するとエラーになってしまいます。
|
60
60
|
```error
|
61
61
|
AttributeError: This method only works with the ScalarFormatter
|
62
62
|
```
|
63
|
-
また、上記のコードでは、0,0に
|
63
|
+
また、上記のコードでは、0,0に表示されるグラフだけタイトルが表示されません。
|
64
64
|
これらはどのように解決できるでしょうか。
|
65
65
|
宜しくお願い致します。
|
3
コメントの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,5 +40,26 @@
|
|
40
40
|
良いのでしょうか。
|
41
41
|
宜しくお願い致します。
|
42
42
|
|
43
|
+
列ごとに個別の設定をするのはコードがかなり長くなるため、
|
44
|
+
for文を用いてアレンジしたいと考えております。
|
43
45
|
|
44
46
|
|
47
|
+
```python
|
48
|
+
fig = plt.figure(figsize = (40, 80), tight_layout=True) # グラフサイズ(幅、高さ)
|
49
|
+
for col in range(df.shape[1]):
|
50
|
+
plt.subplot(12, 2, col+1)
|
51
|
+
plt.plot(df.iloc[:, col])
|
52
|
+
|
53
|
+
for i in range(col):
|
54
|
+
plt.title(columns[i+1]) # 列No.をタイトルに
|
55
|
+
plt.ticklabel_format(style="plain", axis="y", scilimits=(0, 0)) # eを使わない表現
|
56
|
+
plt.gca().get_yaxis().set_major_formatter(ticker.FuncFormatter(lambda v,p: f'{int(v):,d}'))
|
57
|
+
plt.show()
|
58
|
+
```
|
59
|
+
上記のように変更すると9行目でエラーになってしまいます。
|
60
|
+
```error
|
61
|
+
AttributeError: This method only works with the ScalarFormatter
|
62
|
+
```
|
63
|
+
また、上記のコードでは、0,0にひょうじされるグラフだけタイトルが表示されません。
|
64
|
+
これらはどのように解決できるでしょうか。
|
65
|
+
宜しくお願い致します。
|
2
質問の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,6 +12,8 @@
|
|
12
12
|
### 該当のソースコード
|
13
13
|
|
14
14
|
```Python
|
15
|
+
import pandas as pd
|
16
|
+
df = pd.read_csv("data.csv")
|
15
17
|
df.plot(
|
16
18
|
subplots=True,
|
17
19
|
figsize=(40,80), # グラフサイズ(幅、高さ)
|
@@ -30,7 +32,13 @@
|
|
30
32
|
matplotlib : 3.6.3
|
31
33
|
jupyterlab : 3.5.2
|
32
34
|
|
35
|
+
### ご回答いただいた方々へ
|
36
|
+
ご回答者の仰る通り、本件は意見交換ではなくQ&Aにすべきでした。
|
37
|
+
コメントができない為、こちらにコメントとして残すことにします。
|
38
|
+
やりたいこととして追加があります。
|
39
|
+
3桁ごとにコンマで区切りたいのですが、どのようにコーディングすれば
|
40
|
+
良いのでしょうか。
|
41
|
+
宜しくお願い致します。
|
33
42
|
|
34
43
|
|
35
44
|
|
36
|
-
|
1
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -5,7 +5,8 @@
|
|
5
5
|
Pandasのデータフレームを列(カラム)ごとに可視化(折れ線グラフ)したいです。
|
6
6
|
|
7
7
|
現状としては、Pandasのplot()関数を用いて列ごとにプロットできましたが、
|
8
|
-
Y軸の目盛が100万を超えるとeを使った表現になったり、
|
8
|
+
Y軸の目盛が100万を超えるとeを使った表現になってしまわないようにしたり、
|
9
|
+
グラフごとにタイトルの設定を行いたいです。
|
9
10
|
当初は、matplotlibを使って作業していましたが、うまくプロットできずにPandasを使っています。
|
10
11
|
|
11
12
|
### 該当のソースコード
|