[解決済み】ヒストグラムプロット "AttributeError: max must be larger than min in range parameter."
質問
ヒストグラムを作成するためのデータセット(.txtファイル)がありますが、ジャーナルから、データを正規化し、代わりに正規化したデータのヒストグラムをプロットするように依頼されました。しかし、正規化されたデータをプロットしようとすると、"AttributeError: max must be larger than min in range parameter." というエラーが発生します。基本的に、H1は私のデータのリストです(いくつかは、私が削除しようとしているナノ値を含むかもしれません)、そして、私は残りのデータを正規化しようとしています。
import numpy as np
from numpy import array
import matplotlib.pyplot as plt
H1 = np.loadtxt('histogramrate25p10area30.txt') #Import data from txt file
newH1 = [x for x in H1 if x != 'nan'] #Remove nan values
norm1 = [float(i)/max(newH1) for i in newH1] #Normalize remaining values
nbins1 = 400
plt.figure()
plt.subplot(111)
plt.hist(norm1, nbins1, color='purple', alpha=0.5)
plt.ylabel('Frequency', fontsize=20)
plt.show()
このサイトを見ていると、nan値があるとエラーになるようですが、上記のnewH1リストでは、nan値をすべて削除したつもりなので、何が原因でこのエラーになるのか不明です。
解決方法は?
以下のようにすればよいでしょう。
import numpy as np
from numpy import array
import matplotlib.pyplot as plt
H1 = np.loadtxt('histogramrate25p10area30.txt')
newH1 = H1[~np.isnan(H1)]
norm1 = np.apply_along_axis(func1d=lambda x: x/np.max(newH1), arr=newH1, axis=0)
nbins1 = 400
plt.hist(norm1, nbins1, color='purple', alpha=0.5)
plt.figure()
plt.subplot(111)
plt.hist(norm1, nbins1, color='purple', alpha=0.5)
plt.ylabel('Frequency', fontsize=20)
plt.show()
説明
上のスクリプトは、データをロードする際に
np.loadtxt
関数を使用して、NULL 値を含む行を削除します。後者は、インポートした配列にブーリアン配列
~np.isnan(H1)
. ここで
np.isnan
である行を検索します。
null
または
nan
と
~
の記号はそれを否定しています。
True
の値を
False
その逆も同様です。それが終わると、新しい配列の各値に関数を適用する作業に移ります。ここでいう関数は
lambda x: x/np.max(newH1)
これは基本的に、配列の各値を新しい配列に存在する最大値で割るものです。
次のステップは、ヒストグラムをプロットすることです。必要なビンの数を 400 に設定し、ヒストグラムを描画するために
plt.hist
を使用してヒストグラムをプロットします。また
figure
を追加し、さらに
subplot
に、私たちの
figure
. 続いて
subplot
を使用してヒストグラムを描画します。
お役に立てれば幸いです。
関連
-
PythonはWordの読み書きの変更操作を実装している
-
Python jiabaライブラリの使用方法について説明
-
Python百行で韓服サークルの画像クロールを実現する
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み】最小と最大のバージョン範囲を持つパッケージをpipでインストールする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
任意波形を生成してtxtで保存するためのPython実装
-
Pythonショートビデオクローラーチュートリアル
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac