summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhaturatu <warsaw21g@gmail.com>2024-06-17 23:24:24 +0900
committerhaturatu <warsaw21g@gmail.com>2024-06-17 23:25:48 +0900
commit3cf49fd8260a7666b467445354e9c8d3f8897b03 (patch)
tree3ba11ad806e44304d5fe6759adf3c57c8315950c
parentebc9f903eb5f2e546ed1123691c480b1ed0c1f65 (diff)
subtraction operation
-rwxr-xr-xhikakucsv.py17
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}')