• Skip to main content
  • Skip to primary sidebar

学習記録

プログラミング

貿易統計csv読込時の文字化け対策

2018年5月27日 by 河副 太智 Leave a Comment

dataframeに貿易統計のcsvを読み込ませる際に発生する文字化けを防ぐ

 

1
2
3
4
5
6
7
import numpy as np
import pandas as pd
import codecs
 
with codecs.open("holoviews-master/examples/assets/zeikanhs.csv", "r", "Shift-JIS", "ignore") as file:
    df = pd.read_table(file, delimiter=",")
df

 

Filed Under: プログラミング, 作成実績

.npzフォーマットをcsvに変換

2018年5月15日 by 河副 太智 Leave a Comment

.npzフォーマットをcsvに変換

1
2
3
4
5
import numpy as np
 
data = np.load('test.npz')
for key, value in data.items():
    np.savetxt("somepath" + key + ".csv", value)

 

Filed Under: Numpy

BokehとHoloViewsを学ぶ

2018年5月10日 by 河副 太智 Leave a Comment

HoloViews.orgにて学んだ内容をまとめていきます。

HoloViewsとはオープンソースpythonライブラリーで
データ分析、ビジュアライゼーションを簡単に素早く行う事が可能

HoloViewsサンプル

HoloViews.orgに掲載されているサンプル
コードは驚くほどシンプルな構造

更にGalleryページにはBoken,Matplotlib,Plotlyを使用した
サンプルグラフがある

各グラフのコードのサンプルもHoloViews.orgにて紹介している




 

 

Holoviewのインストール

condaがお勧め

1
conda install -c ioam holoviews bokeh

 

上記で紹介したサンプルのグラフも含まれている

1
2
holoviews --install-examples
cd holoviews-examples

 

 

NY地下鉄の駅名情報を可視化

pandas,numpyを使用する
hv.extension(“bokeh”)でBokehのエクステンションをロードし
Bokehを使った可視化ができるようになる

他のプロットライブラリーも組み合わせ可能(matplotlib等)

1
2
3
4
import pandas as pd
import numpy as np
import holoviews as hv
hv.extension('bokeh')

 

次にニューヨークの地下鉄の駅名やその他情報を
含むデータセットを読み込む
csvファイルはこちら

1
2
station_info = pd.read_csv('/station_info.csv')
station_info.head()

 

 

可視化の為のオブジェクト

スキャッタープロット

hv.Scatterオブジェクトを使用して
駅の数と利用者数(百万単位)の2つをスキャッタープロット表示

1
2
scatter = hv.Scatter(station_info, 'services', 'ridership')
scatter

 

※画像のリンク先でグラフをドラッグで動かせる

 

csvのデータ(station_info)をhv.Scatterに渡し、scatterオブジェクトを作成
これ以外のエレメントはReference Galleryにて紹介

ヒストグラム

hv.Histogramオブジェクトを使用して地下鉄の駅開設日を
ヒストグラムにする

1
2
layout = hv.Histogram(np.histogram(station_info['opened'], bins=24), kdims=['opened'])
layout

 

 

 

+を使用して複数のグラフ表示

スキャッタープロットとヒストグラムなど複数のオブジェクトを
使用したグラフを横並びに表示する

1
2
layout = scatter + hv.Histogram(np.histogram(station_info['opened'], bins=24), kdims=['opened'])
layout

 

 

以下ここまでのコードまとめ

1
2
3
4
5
6
7
8
9
10
import pandas as pd
import numpy as np
import holoviews as hv
hv.extension('bokeh')
 
station_info = pd.read_csv('holoviews-master/examples/assets/station_info.csv')
scatter = hv.Scatter(station_info, 'services', 'ridership')
 
layout = scatter + hv.Histogram(np.histogram(station_info['opened'], bins=24), kdims=['opened'])
layout

 

神経スパイク列を可視化

脳のニューロン発火現象を記録したデータセットを用いて
発火時間(milliseconds)
神経細胞が発火する頻度をヘルツ(Hertz)
の2つのデータセットを可視化

csvファイル(spike_train.csv.gz)はこちら

 

pandasとholoviewsをインポートし、spike_trainにcsvを読み込ませる

1
2
3
import pandas as pd
import holoviews as hv
spike_train = pd.read_csv('/spike_train.csv.gz')

データフレームを表示

1
spike_train

 

hv.Curveでグラフ作成

可視化のオブジェクトにhv.Curveを使用
先ほど使用したhv.Scatter やhv.Histogramの仲間

hv.Curveの引数を左からcsv格納変数、インデックス名2つ、group=でグラフタイトル

1
curve = hv.Curve(spike_train, 'milliseconds', 'Hertz', group='Firing Rate')

bokehとmatplotlibをロード

1
2
hv.extension('bokeh', 'matplotlib')
curve

hv.Spikesでグラフ作成

1
2
spikes = hv.Spikes(spike_train.sample(300), kdims='milliseconds', vdims=[], group='Spike Train')
spikes

2つのグラフを並べる

1
curve + spikes

 

更にカスタマイズして見やすいグラフ作成
グラフ上にカーソルを合わせると各データをインタラクティブに表示

1
2
3
4
5
6
7
8
9
10
11
%%output size=150
 
%%opts Curve  [height=100 width=600 xaxis=None tools=['hover']]
 
%%opts Curve (color='red' line_width=1.5)
 
%%opts Spikes [height=100 width=600 yaxis=None] (color='grey' line_width=0.25)
 
curve  = hv.Curve( spike_train, 'milliseconds', 'Hertz')
spikes = hv.Spikes(spike_train, 'milliseconds', [])
(curve + spikes).cols(1)

%%output size=150で全体のサイズ
%%opts Curve でcurveグラフ個別の詳細設定

以下のグラフは画像ですのでインタラクティブ操作できません
実際に動かすにはこちらのグラフをご覧ください。

Filed Under: Bokeh, HoloViews, グラフ

Bokeh と Holoviewsで月食グラフをhtmlに変換

2018年5月7日 by 河副 太智 Leave a Comment

Bokeh と Holoviewsで月食グラフをhtmlに変換

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import pandas as pd
import holoviews as hv
from bokeh.io import output_file, save, show
hv.extension('bokeh', 'matplotlib')
 
eclipses = pd.read_csv('../data/eclipses_21C.csv', parse_dates=['date'])
eclipses.head()
 
hv.Curve(eclipses)
 
curve= hv.Curve(eclipses)
renderer = hv.renderer('bokeh')
# rendererで保存
renderer.save(curve, 'graph')
# boken形式に変換
plot = renderer.get_plot(curve).state
 
# graph.htmlの名でhtmlファイルを出力
output_file('graph.html')
 
# プロット
show(plot)

 

Filed Under: Bokeh, グラフ, 作成実績

パスが正しいかを調べる

2018年5月7日 by 河副 太智 Leave a Comment

パスにファイルかフォルダーが存在すればTrue
無ければFalse

1
2
3
import os
if not os.path.exists('./assets/nyc_taxi.csv'):
    print('Taxi dataset not found.')

パスにファイルかフォルダーが存在し、かつ
ファイルであればTrueそうでなければFalse

1
2
3
import os
if not os.path.isfile('./assets/nyc_taxi.csv'):
    print('Taxi dataset not found.')

 

Filed Under: python3

BokehとHoloviewsでグラフをhtmlにする

2018年4月23日 by 河副 太智 Leave a Comment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import holoviews as hv
curve = hv.Curve(range(10)) # Could be any HoloViews object
 
renderer = hv.renderer('bokeh')
 
# Using renderer save
renderer.save(curve, 'graph.html')
 
# Convert to bokeh figure then save using bokeh
plot = renderer.get_plot(curve).state
 
from bokeh.io import output_file, save, show
 
output_file("graph.html")
show(plot)

 

 

 

Filed Under: Bokeh, グラフ

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 10
  • Page 11
  • Page 12
  • Page 13
  • Page 14
  • Interim pages omitted …
  • Page 55
  • Go to Next Page »

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in