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

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

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

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

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

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

Q&A

解決済

1回答

1180閲覧

最小二乗法を使った近似直線の書き方

hundred

総合スコア2

CSV

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

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

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

0グッド

0クリップ

投稿2021/12/22 13:09

前提・実現したいこと

近似直線を描く
岩手県と秋田県の人口と死亡者数の相関を調べるためのグラフを製作しており、近似直線を書きたいのですが、近似直線が1つしか書けません。どのようにすればいいですか。

発生している問題・エラーメッセージ

近似直線が書けないことです。
エラーメッセージは特にありません
下の画像は岩手県と秋田県の人口と死亡者数のデータです。1列目は岩手県の人口、2列目は岩手県の死亡者数、3列目は秋田県の人口、4列目は秋田県の死亡者数です。
この画像は岩手県と秋田県の人口と死亡者数のデータです

python

1コード 2import numpy as np 3import matplotlib.pyplot as plt 4# データの読み込み 5data = np.loadtxt("aaaaaa.csv", delimiter=",",usecols=[0,1,2,3]) 6x1 = data[: , 0] # population of Iwate 7x2 = data[: , 2]#population of Akita 8y1= data[: , 1] # 死亡数 of Iwate 9y2= data[: , 3] # 死亡数 of Akita 10#図1 11plt.figure(figsize=[6,6]) 12plt.xlabel('population') 13plt.ylabel('死亡数') 14plt.scatter(x1,y1,c="red") 15plt.scatter(x2,y2,c="blue") 16 17print("iwate…red") 18print("akita…blue") 19 20# 最小二乗法 21x1_mean = np.mean(x1) 22x2_mean = np.mean(x2) 23y1_mean = np.mean(y1) 24y2_mean = np.mean(y2) 25x1_var = np.var(x1) 26x2_var = np.var(x2) 27 28x1y1_cov = np.cov(x1,y1,bias=True)[0,1] 29x2y2_cov = np.cov(x2,y2,bias=True)[0,1] 30# 回帰係数 31A1 =x1y1_cov / x1_var 32B1= y1_mean - A1*x1_mean 33A2 =x2y2_cov / x2_var 34B2= y2_mean - A2*x2_mean 35# 回帰直線の関数 36 37def reg(x1) : 38 y1= A1*x1 + B1 39 return y1 40def reg(x2) : 41 y2= A2*x2 + B2 42 return y2 43 44# プロット用x,y 45x1p = [950000,1400000] # xの範囲(任意) 46y1p = [reg(x1p[0]),reg(x1p[1])] 47x2p = [950000,1400000] # xの範囲(任意) 48y2p = [reg(x2p[0]),reg(x2p[1])] 49 50# 図化 51plt.figure(figsize=[6,6]) 52plt.xlim(950000,1400000) 53plt.ylim(10000,20000) 54plt.xlabel('population') 55plt.ylabel('死亡数') 56plt.scatter(x1,y1) 57plt.scatter(x2,y2) 58plt.plot(x1p,y1p,color="red") 59plt.plot(x2p,y2p,color="blue") 60plt.show() 61 62

試したこと

ソースコードを作り直すなど

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

原因は同名の関数を定義していることです。

python

1def reg(x1) : 2 y1= A1*x1 + B1 3 return y1 4 5def reg(x2) : 6 y2= A2*x2 + B2 7 return y2

やっつけの修正ですが、関数名を reg1()reg2() に変更します。

python

1def reg1(x1) : 2 y1= A1*x1 + B1 3 return y1 4 5def reg2(x2) : 6 y2= A2*x2 + B2 7 return y2 8 9# プロット用x,y 10x1p = [950000,1400000] # xの範囲(任意) 11y1p = [reg1(x1p[0]),reg1(x1p[1])] 12x2p = [950000,1400000] # xの範囲(任意) 13y2p = [reg2(x2p[0]),reg2(x2p[1])]

plot

投稿2021/12/22 14:08

melian

総合スコア19771

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問