2011年3月31日木曜日

PyMongoでデータの挿入と検索を行う

PyMongoでデータの挿入と検索を行うには、以下のコードのようにinsertとfindを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("members")
col = conn.local.members
# メンバーをinsert
col.insert({"name":"brian", "age":21})
col.insert({"name":"bob", "age":22})
col.insert({"name":"rob", "age":23})
# 21才のメンバーを探す
for obj in col.find({"age":21}):
 print(obj)
print "----"
# JavaScript Expressionで21才のメンバーを探す
for obj in col.find({"$where":"this.age==21"}):
 print(obj)
print "----"
# 22才以上のメンバーを探す
for obj in col.find({"age":{"$gte":22}}):
 print(obj)
print "----"
# JavaScript Expressionで22才以上のメンバーを探す
for obj in col.find({"$where":"this.age>=22"}):
 print(obj)

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

redis-pyでリストの指定したインデックスの値を返す

redis-pyでリストの指定したインデックスの値を返すには、以下のコードのようにlindexを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
# リストの先頭に値を追加する
rc.lpush('list1', 'value1')
rc.lpush('list1', 'value2')
rc.lpush('list1', 'value3')
# 指定したインデックスの値を返す
print(rc.lindex('list1', 1))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月30日水曜日

PyGraphvizでノードの色を指定する(メソッド版)

PyGraphvizでノードの色を指定するには、以下のコードを実行します。

# coding=UTF-8
from pygraphviz import *

graph = AGraph(viewport='200x200', resolution='72')
graph.add_node(u'項目1', fontname='Monospace')
graph.add_node(u'項目2', fontname='Monospace', 
color="#7799dd")
graph.add_node(u'項目3', fontname='Monospace')
graph.add_node(u'項目4', fontname='Monospace')
graph.add_edge('項目1', '項目2')
graph.add_edge('項目2', '項目3')
graph.add_edge('項目2', '項目4')
graph.layout(prog='dot')
graph.draw('pgv39.png')
出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月29日火曜日

redis-pyでリストの先頭に値の追加と範囲指定での値取得を行う

redis-pyでリストの先頭に値の追加と範囲指定での値取得を行うには、以下のコードのようにlpushとlrangeを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
# リストの先頭に値を追加する
rc.lpush('list1', 'value1')
rc.lpush('list1', 'value2')
rc.lpush('list1', 'value3')
# 指定した範囲の値を返す
for value in rc.lrange('list1', 0, -1):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月28日月曜日

PyGraphvizで日本語のグラフを描画する(メソッド版)

PyGraphvizで日本語のグラフを描画するには、以下のコードを実行します。

# coding=UTF-8
from pygraphviz import *

graph = AGraph(viewport='200x200', resolution='72')
graph.add_node(u'項目1', fontname='Monospace')
graph.add_node(u'項目2', fontname='Monospace')
graph.add_node(u'項目3', fontname='Monospace')
graph.add_node(u'項目4', fontname='Monospace')
graph.add_edge('項目1', '項目2')
graph.add_edge('項目2', '項目3')
graph.add_edge('項目2', '項目4')
graph.layout(prog='dot')
graph.draw('pgv38.png')
出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月27日日曜日

redis-pyで最後にディスクに保存した日時を取得する

redis-pyで最後にディスクに保存した日時を取得するには、以下のコードのようにlastsaveを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
# diskに最後に保存した日時
print(rc.lastsave())

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月26日土曜日

PyGraphvizで出力イメージを縮小する

PyGraphvizで出力イメージを縮小するには、以下のコードのようにviewportの3番目のパラメータを指定します。.5を指定することで1/2に縮小されます。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph37
{
  graph [viewport="200,200,.5", resolution=72];
  node [fontname="Monospace"];
  項目1 -> 項目2 -> 項目3;
  項目2 -> 項目4;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv37.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月25日金曜日

redis-pyでパターンにマッチするキーを取得する

redis-pyでパターンにマッチするキーを取得するには、以下のコードのようにパターンを指定してkeysメソッドを呼び出します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
for key in rc.keys('key*'):
 print(key)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月24日木曜日

PyGraphvizで背景を透明にして半透明のノードを描画する

PyGraphvizで背景を透明にして半透明のノードを描画するには、以下のコードのようにcolorでアルファ値を指定します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph36
{
  graph [bgcolor="#00000000",
    viewport="200,200", resolution=72];
  node [fontname="Monospace", style="filled", 
     fillcolor="#ffffff80"];
  項目1 -> 項目2 -> 項目3;
  項目2 -> 項目4;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv36.png')

出力画像


補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月23日水曜日

PyMongoでコレクションを削除する

PyMongoでコレクションを削除するには、以下のコードのようにdrop_collectionを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
# コレクションを削除する
conn.local.drop_collection("sample1")

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

redis-pyで全てのキーを取得する

redis-pyで全てのキーを取得するには、以下のコードのようにkeysを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
for key in rc.keys():
 print key

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月22日火曜日

PyGraphvizのcircoで有方向グラフを描画する

PyGraphvizのcircoで有方向グラフを描画するには、以下のコードのようにprogにcircoを指定します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph35
{
  graph [viewport="400,300", resolution=72];
  node [fontname="Monospace"];
  項目1 -> 項目2 -> 項目3;
  項目3 -> 項目4 -> 項目5;
  項目5 -> 項目6 -> 項目1;
  項目2 -> 項目5;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='circo')
graph.draw('pgv35.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月21日月曜日

redis-pyでサーバーの情報を取得する

redis-pyでサーバーの情報を取得するには、以下のコードのようにinfoコマンドを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
for key,value in rc.info().items():
 print key + '=' + str(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月20日日曜日

PyGraphvizのneatoでノードの位置を調節する

PyGraphvizのneatoでノードの位置を調節するには、以下のコードのようにpos attributeを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
graph graph34
{
  graph [viewport="300,300", resolution=72];
  node [fontname="Monospace"];
  項目1 [pos="0,0!"];
  項目2 [pos="3,0!"];
  項目1 -- 項目2 -- 項目3 -- 項目4;
  項目4 -- 項目1;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='neato')
graph.draw('pgv34.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月19日土曜日

redis-pyでキーの値をインクリメントする

redis-pyでキーの値をインクリメントするには、以下のコードのようにincrを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
# key-valueの設定
rc.set('key1', '0')
# 値をインクリメントする
print(rc.incr('key1', 2))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月18日金曜日

PyGraphvizのneatoでノード間の線の長さを変更する

PyGraphvizのneatoでノード間の線の長さを変更するには、以下のコードのようにlen attributeを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
graph graph33
{
  graph [viewport="300,300", resolution=72];
  node [fontname="Monospace"];
  項目1 -- 項目2 -- 項目3 -- 項目4;
  項目4 -- 項目1 [len=2];
}
"""
graph = AGraph(string=dot)
graph.layout(prog='neato')
graph.draw('pgv33.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月17日木曜日

redis-pyでhashの値のリストを取得する

redis-pyでhashの値のリストを取得するには、以下のコードのようにhvalsを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashにkey-valueを設定
rc.hset('hash1', 'field1', 'value1')
rc.hset('hash1', 'field2', 'value2')
rc.hset('hash1', 'field3', 'value3')
# hashの値のリストを取得
for value in rc.hvals('hash1'):
 print value

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月16日水曜日

PyGraphvizのneatoで無方向グラフを描画する

PyGraphvizのneatoで無方向グラフを描画するには、以下のコードのようにprogにneatoを指定します。

# coding=UTF-8
from pygraphviz import *

dot = """
graph graph32
{
  graph [viewport="300,300", resolution=72];
  node [fontname="Monospace"];
  項目1 -- 項目2 -- 項目3;
  項目2 -- 項目4;
  項目2 -- 項目5;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='neato')
graph.draw('pgv32.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月15日火曜日

PyMongoでコレクションを列挙する

PyMongoでコレクションを列挙するには、以下のコードのようにcollection_namesを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
# admin Database内のコレクションを列挙する
for col in conn.local.collection_names():
 print col

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

redis-pyでhashにfieldが存在しない場合のみ値を設定する

redis-pyでhashにfieldが存在しない場合のみ値を設定するには、以下のコードのようにhsetnxを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashにkey-valueを設定
rc.hset('hash1', 'field1', 'value1')
# fieldが存在しない場合のみ値を設定
rc.hsetnx('hash1', 'field1', 'modified')
rc.hsetnx('hash1', 'field2', 'value2')
# 値を取得
print(rc.hget('hash1', 'field1'))
print(rc.hget('hash1', 'field2'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月14日月曜日

PyGraphvizで角丸四角などの角が丸まった形を描画する

PyGraphvizで角丸四角などの角が丸まった形を描画するには、以下のコードのようにstyle attributeを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph31
{
  graph [viewport="300,300", resolution=72];
  node [fontname="Monospace"];
  項目2 [shape="box", style="rounded,filled",
    fillcolor="#ccddff"];
  項目3 [shape="triangle", style="rounded,filled",
    fillcolor="#ccddff"];
  項目4 [shape="house", style="rounded,filled",
    fillcolor="#ccddff"];
  項目1 -> 項目2 -> 項目3;
  項目2 -> 項目4;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv31.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月13日日曜日

redis-pyでhashに辞書の内容を設定する

redis-pyでhashに辞書の内容を設定するには、以下のコードのようにhmsetを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashに辞書のkey-valueを設定
key_values = {'field1':'value1', 'field2':'value2'}
rc.hmset('hash1', key_values)
# 値を取得
print(rc.hget('hash1', 'field1'))
print(rc.hget('hash1', 'field2'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月12日土曜日

PyGraphvizで矢印の頭の形を変更する

PyGraphvizで矢印の頭の形を変更するには、以下のコードのようにarrowheadを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph30
{
  graph [viewport="200,200", resolution=72];
  node [fontname="Monospace"];
  項目1 -> 項目2 [arrowhead="dot"];
  項目2 -> 項目3 [arrowhead="empty"];
  項目2 -> 項目4 [arrowhead="diamond"];
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv30.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月11日金曜日

redis-pyでhashの複数フィールドの値を取得する

redis-pyでhashの複数フィールドの値を取得するには、以下のコードのようにhmgetを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashのfieldにvalueを設定
rc.hset('hash1', 'field1', 'value1')
rc.hset('hash1', 'field2', 'value2')
rc.hset('hash1', 'field3', 'value3')
# 複数のhashのフィールドの値を取得
for value in rc.hmget('hash1', ['field1', 'field2', 'field3']):
 print value

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月10日木曜日

PyGraphvizでノードの間隔を調節する

PyGraphvizでノードの間隔を調節するには、以下のコードのようにranksepとnodesepを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph29
{
  ranksep=0.2; nodesep=0.1;
  graph [viewport="200,200", resolution=72];
  node [fontname="Monospace"];
  項目1 -> 項目2 -> 項目3;
  項目2 -> 項目4;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv29.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月9日水曜日

redis-pyでhashの要素数を取得する

redis-pyでhashの要素数を取得するには、以下のコードのようにhlenを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashのfieldにvalueを設定
rc.hset('hash1', 'field1', 'value1')
rc.hset('hash1', 'field2', 'value2')
rc.hset('hash1', 'field3', 'value3')
# hashの要素数
print(rc.hlen('hash1'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月8日火曜日

PyGraphvizでサブグラフ(クラスタ)への矢印を描画する

PyGraphvizでサブグラフ(クラスタ)への矢印を描画するには、以下のコードのようにlheadとltailを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph28
{
  compound=true;
  graph [viewport="200,300", resolution=72];
  node [fontname="Monospace", labelfontname="Monospace"];
  subgraph cluster0 {
    手順1 -> 手順2
  }
  subgraph cluster1 {
    手順3 -> 手順4
  }
  開始 -> 手順1 [lhead=cluster0];
  開始 -> 手順3 [lhead=cluster1];
  手順2 -> 終了 [ltail=cluster0];
  手順4 -> 終了 [ltail=cluster1];
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv28.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月7日月曜日

PyMongoでコレクションを明示的に作成する

PyMongoでコレクションを明示的に作成するには、以下のコードのようにcreate_collectionを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
# コレクションを明示的に作成する
conn.local.create_collection('sample1')

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

redis-pyでhashのフィールドを列挙する

redis-pyでhashのフィールドを列挙するには、以下のコードのようにhkeysを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashのfieldにvalueを設定
rc.hset('hash1', 'field1', 'value1')
rc.hset('hash1', 'field2', 'value2')
rc.hset('hash1', 'field3', 'value3')
# hashのフィールドを列挙する
for field in rc.hkeys('hash1'):
 print(field)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月6日日曜日

PyGraphvizでサブグラフ(クラスタ)にラベルを設定する

PyGraphvizでサブグラフ(クラスタ)にラベルを設定するには、以下のコードのようにsubgraphとlabelを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph27
{
  graph [viewport="250,300", resolution=72];
  node [fontname="Monospace", labelfontname="Monospace"];
  subgraph cluster0 {
    label="Procedure-A";
    手順1 -> 手順2
  }
  subgraph cluster1 {
    label="Procedure-B";
    手順3 -> 手順4
  }
  開始 -> 手順1;
  開始 -> 手順3;
  手順2 -> 終了;
  手順4 -> 終了;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv27.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月5日土曜日

redis-pyでhashのフィールドの値をインクリメントする

redis-pyでhashのフィールドの値をインクリメントするには、以下のコードのようにhincrbyを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashのfieldにvalueを設定
rc.hset('hash1', 'field1', '0')
# hashのfieldをincrement
print(rc.hincrby('hash1', 'field1', 2))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月4日金曜日

PyGraphvizでサブグラフを描画する

PyGraphvizでサブグラフを描画するには、以下のコードのようにsubgraphを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph26
{
  graph [viewport="200,300", resolution=72];
  node [fontname="Monospace"];
  subgraph cluster0 {
    手順1 -> 手順2
  }
  subgraph cluster1 {
    手順3 -> 手順4
  }
  開始 -> 手順1;
  開始 -> 手順3;
  手順2 -> 終了;
  手順4 -> 終了;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv26.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月3日木曜日

redis-pyでhashの全てのフィールドと値を取得する

redis-pyでhashの全てのフィールドと値を取得するには、以下のコードのようにhgetallを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashのfieldにvalueを設定
rc.hset('hash1', 'field1', 'value1')
rc.hset('hash1', 'field2', 'value2')
rc.hset('hash1', 'field3', 'value3')
# hashの全てのフィールドと値を取得する
for field,value in rc.hgetall('hash1').items():
 print(field + '=' + value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年3月2日水曜日

PyGraphvizでレコード型のノードを描画する

PyGraphvizでレコード型のノードを描画するには、以下のコードのようにshape attributeを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph25
{
  graph [viewport="200,200", resolution=72];
  node [fontname="Monospace"];
  項目1 [shape=record, label="<lp>左|中央|<rp>右"];
  項目1:lp -> 項目2;
  項目1:rp -> 項目3;
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv25.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

2011年3月1日火曜日

redis-pyでhashのフィールドが存在するか確認する

redis-pyでhashのフィールドが存在するか確認するには、以下のコードのようにhexistsを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379)
rc.delete('hash1')
# hashのfieldにvalueを設定
rc.hset('hash1', 'field1', 'value1')
rc.hset('hash1', 'field2', 'value2')
# hashからfieldを削除
rc.hdel('hash1', 'field1')
# fieldの存在確認 -> False
print(rc.hexists('hash1', 'field1'))
# fieldの存在確認 -> True
print(rc.hexists('hash1', 'field2'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)