質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

280閲覧

CSVの3列目のデータをグラフの第2軸に描画したい。

IEEzH3EH

総合スコア3

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/04/26 13:48

編集2023/04/26 13:50

CSVファイルの1列目には時間、2列目には電圧、3列目には電流のデータがあります。
イメージ説明

時間を横軸として、第1縦軸に電圧波形(±300 V)、第2縦軸に電流波形(±1 A)を1つのグラフに描画したいです。現状だと電圧も電流も第1縦軸にまとめて描画されてしまっています(オレンジの電流波形が見えない)。
イメージ説明

現状のプログラムです。

Python

1import pandas as pd 2import matplotlib.pyplot as plt 3 4#CSVファイルをUTF-8形式で読み込む 5 6df = pd.read_csv('VL-IL.csv',encoding = 'UTF8', index_col=0) 7ax = df.plot() 8ax2 = ax.twinx() 9 10ax.set_xlabel("Time $\it{t}$ \u03bcs",fontsize=15) 11ax.set_ylabel("Load Voltage $\it{V_{\mathsf{L}}}}$ V",fontsize=15) 12ax2.set_ylabel("Load Current $\it{I_{\mathsf{L}}}}$ A",fontsize=15) 13ax.grid() 14 15plt.savefig("VL-IL.pdf",bbox_inches='tight') 16ax.plot()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ChatGPTに聞いて、回答を微修正したら描画できました。

Python

1 2import pandas as pd 3import matplotlib.pyplot as plt 4 5# CSVファイルをUTF-8形式で読み込む 6df = pd.read_csv('VL-IL.csv', encoding='UTF8', index_col=0) 7 8# Figureオブジェクトと2つのAxesオブジェクトを作成 9fig, ax1 = plt.subplots() 10ax2 = ax1.twinx() 11 12# それぞれの軸に対応するデータをプロット 13ax1.plot(df.index, df['$\it{V_{\mathsf{L}}}}$ V'], color='blue') 14ax2.plot(df.index, df['$\it{I_{\mathsf{L}}}}$ A'], color='red') 15 16# x軸、y軸ラベルを設定 17ax1.set_xlabel("Time $\it{t}$ \u03bcs", fontsize=15) 18ax1.set_ylabel("Load Voltage $\it{V_{\mathsf{L}}}}$ V", fontsize=15, color='blue') 19ax2.set_ylabel("Load Current $\it{I_{\mathsf{L}}}}$ A", fontsize=15, color='red') 20 21# y軸の目盛を設定 22ax1.set_xlim([0, 100.2]) 23ax1.set_ylim([-300, 300]) 24ax2.set_ylim([-1.5, 1.5]) 25 26# グリッドを表示 27ax1.grid() 28 29# プロットしたグラフを保存 30plt.savefig("VL-IL.pdf", bbox_inches='tight')

イメージ説明

投稿2023/04/26 14:07

編集2023/04/26 15:08
IEEzH3EH

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問