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

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

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

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

Q&A

解決済

1回答

927閲覧

Pythonでの関数フィッティングでエラーは出ないのに結果が出力されない

mappys

総合スコア104

Python

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

0グッド

0クリップ

投稿2022/01/23 15:02

[リンク内容]Pythonでピークフィッテイング
(url)https://qiita.com/kon2/items/6498e66af55949b41a99

こちらのサイトと全く同じコードと、全く同じサンプルファイルを用意して実行したのですが、何故かエラーは出ないのに結果が出力されません。

何か原因が分かる方いらっしゃいますでしょうか。

コードはサイトと全く同じですが一応以下に書いておきます。

python

1%matplotlib inline 2from scipy.optimize import curve_fit 3import numpy as np 4import matplotlib.pyplot as plt 5import matplotlib.cm as cm 6import pandas as pd 7 8dataset = pd.read_csv('sample.csv') 9x = dataset['x'] 10y = dataset['y'] 11def fit_plot(x, *params): 12 num_func = int(len(params)/3) 13 y_list = [] 14 for i in range(num_func): 15 y = np.zeros_like(x) 16 param_range = list(range(3*i,3*(i+1),1)) 17 amp = params[int(param_range[0])] 18 ctr = params[int(param_range[1])] 19 wid = params[int(param_range[2])] 20 y = y + amp * np.exp( -((x - ctr)/wid)**2) + params[-1] 21 y_list.append(y) 22 return y_list 23#初期値リストの結合 24guess_total = [] 25for i in guess: 26 guess_total.extend(i) 27guess_total.append(background) 28 29popt, pcov = curve_fit(func, x, y, p0=guess_total) 30 31fit = func(x, *popt) 32plt.scatter(x, y, s=20) 33plt.plot(x, fit , ls='-', c='black', lw=1) 34 35y_list = fit_plot(x, *popt) 36baseline = np.zeros_like(x) + popt[-1] 37for n,i in enumerate(y_list): 38 plt.fill_between(x, i, baseline, facecolor=cm.rainbow(n/len(y_list)), alpha=0.6)

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

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

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

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

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

melian

2022/01/23 15:23

最後に plt.show() を追加する必要があるのではないでしょうか。
mappys

2022/01/24 03:16

回答ありがとうございます。plt.show()を追加しても結果が出力されませんでした。 この問題は解決していませんが、gnuplotを使ってグラフを作成する方法に変えようと思うので回答は閉めようと思います。 ありがとうございました。
guest

回答1

0

自己解決

この問題は解決していませんが、gnuplotを用いた方法でグラフを作ろうと思います。

投稿2022/01/24 03:17

mappys

総合スコア104

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問