diff options
author | haturatu <warsaw21g@gmail.com> | 2024-06-17 23:24:24 +0900 |
---|---|---|
committer | haturatu <warsaw21g@gmail.com> | 2024-06-17 23:25:48 +0900 |
commit | 3cf49fd8260a7666b467445354e9c8d3f8897b03 (patch) | |
tree | 3ba11ad806e44304d5fe6759adf3c57c8315950c | |
parent | ebc9f903eb5f2e546ed1123691c480b1ed0c1f65 (diff) |
subtraction operation
-rwxr-xr-x | hikakucsv.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/hikakucsv.py b/hikakucsv.py index dbe54ed..5bfdb05 100755 --- a/hikakucsv.py +++ b/hikakucsv.py @@ -3,7 +3,7 @@ import streamlit as st import pandas as pd import matplotlib.pyplot as plt -import matplotlib.font_manager as fm +import numpy as np # 日本語フォントの設定 plt.rcParams['font.family'] = 'Noto Sans CJK JP' @@ -45,11 +45,22 @@ if uploaded_files: axis_position = st.selectbox(f'ファイル{i+1}の縦軸の位置を選択してください', ["左", "右"], index=0, key=f'axis_position_{i}') # ファイルごとにプロットしたいカラムを選択 - col = st.selectbox(f'ファイル{i+1}のカラムを選択してください', [col for col in df.columns if col != date_column], key=f'col_select_{i}') + col = st.selectbox(f'ファイル{i+1}のカラムを選択してください', [col for col in df.columns if col!= date_column], key=f'col_select_{i}') - # 凡例名を入力するためのテキストボックスを作成 + # 凕例名を入力するためのテキストボックスを作成 legend_name = st.text_input(f'ファイル{i+1}の凡例名を入力してください(デフォルトはカラム名: {col})', col, key=f'legend_input_{i}') + # データのスケーリング(必要に応じて) + try: + df[col] = pd.to_numeric(df[col], errors='coerce') # 文字列を数値に変換 + min_val = df[col].min() + max_val = df[col].max() + range_val = max_val - min_val + if range_val < 0: + df[col] -= abs(min_val) # 中心線を0にするためにデータをスケール + except ValueError: + st.error(f"{col}カラムの値が数値に変換できません。") + # 縦軸の位置に応じてデータフレームをプロット if axis_position == "左": ax1.plot(df[date_column], df[col], label=legend_name, color=f'C{i}') |