Python 3.5にpsycopg2をインストール(Mac編)

prunus1350.hatenablog.com
先日、Windowsにpsycopg2をインストールしましたが、今回はMac(El Capitan)にインストールします。*1

Psycopgの公式ドキュメントIntroduction — Psycopg 2.6.2.dev0 documentation
によると pip が使えるとのことなので、

$ pip install psycopg2

とやってみると

Error: pg_config executable not found.

pg_config がないと言われました。
PostgreSQLをインストールすれば良いようです。

手元のマシンにはパッケージマネージャが入っていない状態なので、
まずはこちらHomebrew — OS X 用パッケージマネージャーを参考に
Homebrewをインストールします。

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

次にPostgreSQLをインストールします。

$ brew install postgresql

再度 pip install を試みます。

$ pip install psycopg2
Collecting psycopg2
  Using cached psycopg2-2.6.1.tar.gz
Building wheels for collected packages: psycopg2
  Running setup.py bdist_wheel for psycopg2
  Stored in directory: /Users/prunus1350/Library/Caches/pip/wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329
Successfully built psycopg2
Installing collected packages: psycopg2
Successfully installed psycopg2-2.6.1

インストールは成功しました。

しかし、Pythonコンソールにてインポーとしようとすると、

>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/prunus1350/anaconda/lib/python3.5/site-packages/psycopg2/__init__.py", line 50, in <module>
    from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: dlopen(/Users/prunus1350/anaconda/lib/python3.5/site-packages/psycopg2/_psycopg.cpython-35m-darwin.so, 2): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Users/prunus1350/anaconda/lib/python3.5/site-packages/psycopg2/_psycopg.cpython-35m-darwin.so
  Reason: image not found

となります。

こちら
stackoverflow.com
を見ると、libssl と libcrypto のバージョンが低いのが原因のようです。

El Capitanでは /usr/lib 直下に書き込みができないので /usr/local/lib にリンクを作成します。

$ ln -s /usr/local/Cellar/openssl/1.0.2e/lib/libssl.1.0.0.dylib /usr/local/lib
$ ln -s /usr/local/Cellar/openssl/1.0.2e/lib/libcrypto.1.0.0.dylib /usr/local/lib

確認

>>> import psycopg2
>>>

ちゃんとインポートできました。

*1:Windows編と違ってMac編はPython 3.4とPython 3.5の手順は同じで良いようです。

Python 3.5にpsycopg2をインストール(Windows編)

去年、Spyderが起動しなくなったのでAnacondaを再インストールしました。
その際にPythonのバージョンを3.4から3.5にしました。
PythonからPostgreSQLを扱うパッケージであるpsycopg2のインストール方法が変わってしまったのでメモ。

Python 3.4の場合

Psycopgの公式ドキュメントIntroduction — Psycopg 2.6.2.dev0 documentation
書いてあるように、

Stickpeople Project: win-psycopg, Version: 2.6.1, Date: 06/15/2015
から psycopg2-2.6.1.win-amd64-py3.4-pg9.4.4-release.exe をダウンロードし実行します。

Python 3.5の場合

上記方法は3.4までしかサポートされていませんでした。
ということで参考にしたのがこちら
django - How to intall Psycopg2 for Python 3.5 - Stack Overflow

やり方としては、
Unofficial Windows Binaries for Python Extension Packages
から psycopg2-2.6.1-cp35-none-win_amd64.whl をダウンロードし、コマンドプロンプト

pip install C:\Users\Prunus1350\Downloads\psycopg2-2.6.1-cp35-none-win_amd64.whl

と実行します。

インストールの確認

Pythonコンソールにて

>>> import psycopg2
>>>

ちゃんとインポートできました。

CentOSにleafletパッケージをインストールする

昨年12月に行われたJapan.Rにて知った地図描画用のleafletパッケージですが、WindowsMacだと

> install.packages("leaflet")

ですんなりインストールできたのですが、CentOS6.5で同様にやってみると

 警告メッセージ:
1:  install.packages("leaflet") で:
   パッケージ ‘png’ のインストールは、ゼロでない終了値をもちました
2:  install.packages("leaflet") で:
   パッケージ ‘leaflet’ のインストールは、ゼロでない終了値をもちました

となりうまくインストールできませんでした。
メッセージを見ると、pngパッケージのインストールでこけています。
いろいろググってみると、libpng-develが必要なようです。

$ sudo yum install libpng-devel

とやってから再度パッケージインストールを行うと、今度はインストールが無事完了しました。

動作確認

RStudio Serverにて、Leaflet for R - Introductionbasic exampleを実行してみます。

library(leaflet)

m <- leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=174.768, lat=-36.852, popup="The birthplace of R")
m  # Print the map

f:id:Prunus1350:20160103222252p:plain
ちゃんと動きました。

ggplot2のバージョンを上げたら棒グラフの書き方が変わっていた

はじめに

Rによるデータマイニング入門

Rによるデータマイニング入門

最近読んでいるこの本、そんなに厚くはないんですが基本的な分析手法が一通り網羅されています。
また、dplyrやggplot2など比較的新しいけど最近のRには必須とも言うべきパッケージが使われており、サンプルコードを動かしながらRでどんなことができるのかを知るには良い本なんじゃないかな、と思っています。

ggplot2パッケージのバージョンを上げたらサンプルコードの一部が動かなくなった

ggplot2パッケージは2015/12/15にver2.0.0がリリースされましたが、それを使ってサンプルコードを実行すると、棒グラフ描画の部分がエラーになるようになってしまいました。
具体的にはchapter15.Rの38行目以降の

# 日別の集計

tw.daily <- tw.df %>%
  mutate(twdate=as.Date(created)) %>%
  group_by(twdate) %>% summarize(cnt = n())
tw.daily
qplot(twdate, cnt, data=tw.daily, geom="bar", stat="identity")

を実行すると

> qplot(twdate, cnt, data=tw.daily, geom="bar", stat="identity")
Error: stat_count() must not be used with a y aesthetic.
In addition: Warning message:
`stat` is deprecated

と表示されます。

どうやら集計した値をy軸に指定して棒グラフを描くのは止めて、qplot関数の集計機能を使えということのようです。

なので上記コードは

# 日別の集計
qplot(as.Date(created), data=tw.df, geom="bar", xlab="twdate", ylab="cnt")

とすれば動くようになります。

f:id:Prunus1350:20151230214707p:plain

同様に、52行目以降の時間別集計の部分は

# 時間別の集計

tw.hourly <- tw.df %>%
  mutate(twhour=as.POSIXct(format(created, "%Y-%m-%d %H:00:00"))) %>%
  group_by(twhour) %>% summarize(cnt = n())
tw.hourly
qplot(twhour, cnt, data=tw.hourly, geom="bar", stat="identity")

を、

# 時間別の集計

library(lubridate)
qplot(floor_date(created, "hour"), data=tw.df, geom="bar", xlab="twhour", ylab="cnt")

とすれば大丈夫です。

f:id:Prunus1350:20151230214711p:plain

Dell XPS420をSSD化などした

数年前までメインマシンとして使っていたDell XPS420。
kakaku.com
最近では動きがもっさりしてストレスフルなので、OSクリーンインストール*1のついでに

  • SSD
  • HDD増設
  • メモリ増設

をやってみた。

今回換えたもの

SSD

kakaku.com
16,800円で購入。

HDD

kakaku.com
9,480円で購入。

メモリ

これを4枚で8Gに。
kakaku.com
1,690円×4で購入。

SATAケーブル

HDD増設用に。*2

1,060円で購入。

以前に換えたもの

グラフィックボード

3年前ちょっと前にGeForce 9800GTが壊れた際にこれに換えた。

SAPPHIRE Radeon ビデオカード HD7750 1G GDDR5 PCI-E HDMI/DVI-I/DP SAHD775-1GD5R0

SAPPHIRE Radeon ビデオカード HD7750 1G GDDR5 PCI-E HDMI/DVI-I/DP SAHD775-1GD5R0

換装結果

f:id:Prunus1350:20151230202511p:plain
まだまだつかえるドン!

*1:Vista 32bit → Windows 7 64bit

*2:電源ケーブルはPCに付いているので不要。

SASのgmapプロシジャでコッホ雪片を描く

はじめに

SAS/GRAPHにある地図描画のためのgmapプロシジャ*1では、densityオプションで境界線の詳細度を0~6の7段階で設定することができます。
今回はその機能を使ってコッホ雪片を描いてみます。

コード


実行結果

f:id:Prunus1350:20150425001643p:plain
f:id:Prunus1350:20150425001644p:plain
f:id:Prunus1350:20150425001645p:plain
f:id:Prunus1350:20150425001646p:plain
f:id:Prunus1350:20150425001647p:plain
f:id:Prunus1350:20150425001648p:plain
f:id:Prunus1350:20150425001649p:plain

*1:SAS/GRAPHはSAS雲丹には入っていないので、試してみたい人は製品版SASSAS OnDemand for Academicsなどを使ってみて下さい。

SASでドット絵を描く

はじめに

先日、BRA★BRA FINAL FANTASY / Brass de Bravo ツアー | SQUARE ENIX
というコンサートを聴きに行きました。
FFのキャラが楽器を吹いているドット絵が可愛らしかったので、SASで描いてみました。
以前、手書き文字を描画するときにはヒートマップを使用しましたが、今回は散布図を使用しています。

コード


実行結果

f:id:Prunus1350:20150608205138p:plain

コード


実行結果

f:id:Prunus1350:20150608205156p:plain