色々勉強を進めてきましたが、まったく覚えられないので、使いそうな用法別に操作方法をまとめておきたいと思います。よく使うのがcsvを持ってきて、加工して、散布図を書いて、回帰直線を書いて、現在の数値上の傾向などをみるものです。今回はそこを中心に操作してみます。
データを持ってくる
今回はサンプルでhttps://raw.githubusercontent.com/pyfirst/samplecode/master/4_scraping/lego_scraper/brickset2016.csvをダウンロードして使います。
名前は、ひとまずlego.csvで保存します。
例外のデータや、使えないデータを削除など下準備を行う
まず、変数に読み込んでおいてから、下準備を行います。
今回は、この中のpiecesとus_priceの関係を考えるグラフを作りたいので、その2つにおいて、データがない行は使えないので削除を実施します
以下、jupyter notebookで実行してきまます。
import pandas as pd
file_path='./lego.csv'
data=pd.read_csv(file_path)
#numberは商品番号かな?数値がないやつは捨てておこう
data.dropna(subset=['number'],inplace=True)
#pieces,us_priceがないやつも捨てておこう
data.dropna(subset=['pieces','us_price'],inplace=True)
#散布図を描こう。グラフのライブラリ読み込んでおこう
matplotlib inline
#散布図を描画してみよう横軸をpieces、縦をus_price,グラフにグリッドもつけておこう
data.plot.scatter(x='pieces',y='us_price',grid=True)
描画結果
はい、散布図が描画できました。。。。が、単回帰直線がないので、続いて回帰直線を追加します。
と思ったら。。。どうも、ここで使っているplotっていうのはpandasってやつでデータを取得して、簡易版?的なノリのやつらしい。そのまま吐き出すというか。
重ねる場合は、描画先を作って、散布図をはきだして、さらに、単回帰直線も同じところに吐き出せばいいらしい
pyplotを使って散布図を描画して、さらに単回帰直線を重ねて描画する
ひとまず、pyplotは、matplotlibの中らしいので、読み込んで書いていく
from matplotlib import pyplot as ppt
import pandas as pd
#例のごとく、csvを読む
file_path='./lego.csv'
data=pd.read_csv(file_path)
#numberは商品番号かな?数値がないやつは捨てておこう
data.dropna(subset=['number'],inplace=True)
#pieces,us_priceがないやつも捨てておこう
data.dropna(subset=['pieces','us_price'],inplace=True)
#キャンバス的なものを作成
canbus=ppt.figure(figsize=(10,10))
#その中にプロットとかいうグラフ枠をつくるらしい
ax1=canbus.add_subplot(111)
#ax=で描画先を指定できるらしい
data.plot.scatter(x='pieces',y='us_price',grid=True,ax=ax1)
#回帰式を取得する。取得できるライブラリは、scipy.statsらしい
from scipy.stats import linregress
#返り値は、slop,intercept,rvalue,pvalue,stderrの順らしい
slope,intercept,rvalue,pvalue,stderr = linregress(data["pieces"],data["us_price"])
#回帰直線のx軸に対するy軸を出す関数を作る
#式は一次関数、f(x)=slope*x+intercept
def price_fx(pieces):
return slope*pieces+intercept
#一次関数描画用のxの範囲とyの範囲を設定しておく
x=[0,data["pieces"].max()]
y=[price_fx(0),price_fx(data["pieces"].max())]
#一次関数を 散布図を出力したax1に出力する
ax1.plot(x,y)
さて実行したのが下の画像
うん、ぽい!回帰直線っぽい!うまくいった。
コメント
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
<a href="http://www.g3zr3lu699z811668sx9b1ezi80kcuj2s.org/">arxvptxweo</a>
[url=http://www.g3zr3lu699z811668sx9b1ezi80kcuj2s.org/]urxvptxweo[/url]
rxvptxweo http://www.g3zr3lu699z811668sx9b1ezi80kcuj2s.org/
<a href="http://www.g3zr3lu699z811668sx9b1ezi80kcuj2s.org/">arxvptxweo</a>
[url=http://www.g3zr3lu699z811668sx9b1ezi80kcuj2s.org/]urxvptxweo[/url]
rxvptxweo http://www.g3zr3lu699z811668sx9b1ezi80kcuj2s.org/
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
<a href="http://www.gce54oi45135703vd3jpxerj0y59iy89s.org/">ancejdkh</a>
[url=http://www.gce54oi45135703vd3jpxerj0y59iy89s.org/]uncejdkh[/url]
ncejdkh http://www.gce54oi45135703vd3jpxerj0y59iy89s.org/
<a href="http://www.gce54oi45135703vd3jpxerj0y59iy89s.org/">ancejdkh</a>
[url=http://www.gce54oi45135703vd3jpxerj0y59iy89s.org/]uncejdkh[/url]
ncejdkh http://www.gce54oi45135703vd3jpxerj0y59iy89s.org/
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
[url=http://www.g3gr9q272885taai35lq17148fk1ozqos.org/]umtoewdonkk[/url]
mtoewdonkk http://www.g3gr9q272885taai35lq17148fk1ozqos.org/
<a href="http://www.g3gr9q272885taai35lq17148fk1ozqos.org/">amtoewdonkk</a>
[url=http://www.g3gr9q272885taai35lq17148fk1ozqos.org/]umtoewdonkk[/url]
mtoewdonkk http://www.g3gr9q272885taai35lq17148fk1ozqos.org/
<a href="http://www.g3gr9q272885taai35lq17148fk1ozqos.org/">amtoewdonkk</a>
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
felnxrrtwm http://www.g3o2c9tz77c8fg096r2q9u1j6oox14x5s.org/
<a href="http://www.g3o2c9tz77c8fg096r2q9u1j6oox14x5s.org/">afelnxrrtwm</a>
[url=http://www.g3o2c9tz77c8fg096r2q9u1j6oox14x5s.org/]ufelnxrrtwm[/url]
felnxrrtwm http://www.g3o2c9tz77c8fg096r2q9u1j6oox14x5s.org/
<a href="http://www.g3o2c9tz77c8fg096r2q9u1j6oox14x5s.org/">afelnxrrtwm</a>
[url=http://www.g3o2c9tz77c8fg096r2q9u1j6oox14x5s.org/]ufelnxrrtwm[/url]
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
pwmrtqvgw http://www.gb53gr434ezw6h00ox827qg23l75njy4s.org/
<a href="http://www.gb53gr434ezw6h00ox827qg23l75njy4s.org/">apwmrtqvgw</a>
[url=http://www.gb53gr434ezw6h00ox827qg23l75njy4s.org/]upwmrtqvgw[/url]
pwmrtqvgw http://www.gb53gr434ezw6h00ox827qg23l75njy4s.org/
<a href="http://www.gb53gr434ezw6h00ox827qg23l75njy4s.org/">apwmrtqvgw</a>
[url=http://www.gb53gr434ezw6h00ox827qg23l75njy4s.org/]upwmrtqvgw[/url]
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
[url=http://www.g7z02rp19vftrpv79mdse82964c745m9s.org/]utffxjet[/url]
tffxjet http://www.g7z02rp19vftrpv79mdse82964c745m9s.org/
<a href="http://www.g7z02rp19vftrpv79mdse82964c745m9s.org/">atffxjet</a>
[url=http://www.g7z02rp19vftrpv79mdse82964c745m9s.org/]utffxjet[/url]
tffxjet http://www.g7z02rp19vftrpv79mdse82964c745m9s.org/
<a href="http://www.g7z02rp19vftrpv79mdse82964c745m9s.org/">atffxjet</a>
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
jqkehmji http://www.g22xy04p0ch8m8o91ag3l010orcc91b6s.org/
<a href="http://www.g22xy04p0ch8m8o91ag3l010orcc91b6s.org/">ajqkehmji</a>
[url=http://www.g22xy04p0ch8m8o91ag3l010orcc91b6s.org/]ujqkehmji[/url]
jqkehmji http://www.g22xy04p0ch8m8o91ag3l010orcc91b6s.org/
<a href="http://www.g22xy04p0ch8m8o91ag3l010orcc91b6s.org/">ajqkehmji</a>
[url=http://www.g22xy04p0ch8m8o91ag3l010orcc91b6s.org/]ujqkehmji[/url]
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
<a href="http://www.gk2llw3a5t1fne162346lr898ls6tw29s.org/">aksvemfojqv</a>
ksvemfojqv http://www.gk2llw3a5t1fne162346lr898ls6tw29s.org/
[url=http://www.gk2llw3a5t1fne162346lr898ls6tw29s.org/]uksvemfojqv[/url]
<a href="http://www.gk2llw3a5t1fne162346lr898ls6tw29s.org/">aksvemfojqv</a>
ksvemfojqv http://www.gk2llw3a5t1fne162346lr898ls6tw29s.org/
[url=http://www.gk2llw3a5t1fne162346lr898ls6tw29s.org/]uksvemfojqv[/url]
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
<a href="http://www.gkp1dlcvb7x18uu37y53197901e70oxhs.org/">abnmmfgrs</a>
[url=http://www.gkp1dlcvb7x18uu37y53197901e70oxhs.org/]ubnmmfgrs[/url]
bnmmfgrs http://www.gkp1dlcvb7x18uu37y53197901e70oxhs.org/
<a href="http://www.gkp1dlcvb7x18uu37y53197901e70oxhs.org/">abnmmfgrs</a>
[url=http://www.gkp1dlcvb7x18uu37y53197901e70oxhs.org/]ubnmmfgrs[/url]
bnmmfgrs http://www.gkp1dlcvb7x18uu37y53197901e70oxhs.org/
[Python] matplotlibとpandasとscipyを使って散布図と回帰直線を書いてみる|webトピ
<a href="http://www.gz1qlfhd732wu51q1r02jy12j06s841bs.org/">asndozkozo</a>
[url=http://www.gz1qlfhd732wu51q1r02jy12j06s841bs.org/]usndozkozo[/url]
sndozkozo http://www.gz1qlfhd732wu51q1r02jy12j06s841bs.org/
<a href="http://www.gz1qlfhd732wu51q1r02jy12j06s841bs.org/">asndozkozo</a>
[url=http://www.gz1qlfhd732wu51q1r02jy12j06s841bs.org/]usndozkozo[/url]
sndozkozo http://www.gz1qlfhd732wu51q1r02jy12j06s841bs.org/
