matplotlib 入門 お試しコードまとめ -単体、+mysql
簡単な式や数字をグラフにする:
1: Pyplot tutorial — Matplotlib 1.4.3 documentation
----参照:numpy.arange — NumPy v1.9 Manual
2: Pythonのmatplotlibの使い方メモ | 未分類 | hydroculのメモ
3: 1.4. Matplotlib: 作図 — Scipy lecture notes
1:例
# coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
#plt.plot([1,2,3,4])
#plt.ylabel('some numbers')
#plt.show()
# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)
# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
発展編:
MySQLわかりやすいサイト ー使うツール: mysqldb(2つ)
(1)
"使い方
で、rowとしてSQL文の実行結果を1行づつ配列として取得できます。
また、MySQLdb.connectにcursorclass=MySQLdb.cursors.DictCursor
を指定すると、
rowがカラム名と値の辞書になります。"
(2)
例:
import MySQLdb
connection = MySQLdb.connect(host="localhost", db="agemono", user="root", passw\
d="password", charset="utf8")
cursor= connection.cursor()
cursor.execute("select * from minatoa limit 10")
data = cursor.fetchall()
for row in data:
print row[0], row[1]
cursor.close()
connection.close()
-------------------------
config.py
# coding: utf-8
user = 'root'
host = '127.0.0.1'
passwd = 'password' # mysqlのrootユーザのパスワード
db = 'RCData' # 利用したいデータベースの名前
#coding: utf8
import MySQLdb
import config
dbcon = mysql.connector.connect(database=config.db, user=config.user, password=config.passwd, host=config.host)
dbcur = dbcon.cursor()
#指定のuser_idのデータを取得する
user_id = 1234567
dbcur.execute(''' SELECT tweet_id, text, created_at FROM tweets WHERE user_id = %s ''',(user_id,))
for row in dbcur.fetchall():
print row
#row[0]にはtweetsテーブルのidカラムの値が入る
#row[1]にはtweetsテーブルのtextカラムの値が入る
#row[2]にはtweetsテーブルのcreated_atカラムの値が入る
データベースによるデータ管理 | 東京大学グローバル消費インテリジェンス寄附講座
(3) matplotlib を使う
Code Journeys: Using matplotlib to plot data from a MySQL table
例:
import MySQLdb
from pylab import *
import sys
connection = MySQLdb.connect(host="localhost", db="agemono", user="root", passwd="password", charset="utf8")
cursor= connection.cursor()
query="select avg_sales+abs(avg_destruction), date from minatoa limit 10"
cursor.execute(query)
data = cursor.fetchall()
prod =
date =
for row in data:
prod.append(row[0])
date.append(row[1])
plot(prod, date, 'ko')
axis(min(prod), max(prod), min(date), max(date))
title(query)
grid(True)
cursor.close()
connection.close()
ターミナル;
matplotlib_test python avg_min_temp_prod.py
Traceback (most recent call last):
File "avg_min_temp_prod.py", line 17, in <module>
plot(prod, date, 'ko')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py", line 2987, in plot
ret = ax.plot(*args, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", line 4138, in plot
self.add_line(line)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", line 1497, in add_line
self._update_line_limits(line)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", line 1508, in _update_line_limits
path = line.get_path()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/lines.py", line 743, in get_path
self.recache()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/lines.py", line 429, in recache
y = np.asarray(yconv, np.float_)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/numeric.py", line 460, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: invalid literal for float(): 1/1/14
--------
import MySQLdb
from pylab import *
import sys
import numpy as np
import matplotlib.pyplot as plt
import datetime
connection = MySQLdb.connect(host="localhost", db="agemono", user="root", passwd="password22324", charset="utf8")
cursor= connection.cursor()
query="select avg_sales+abs(avg_destruction), date from minatoa limit 10"
cursor.execute(query)
data = cursor.fetchall()
prod =
datestring=
print 1111
for row in data:
print 222
prod.append(row[0])
print 444
print row[1]
dateeach = datetime.datetime.strptime(row[1], '%m/%d/%y')
print 555
datestring.append(dateeach)
print 666666
# datestring = ''.join(date)
# dates = matplotlib.dates.date2num(date)
print "2"
plt.plot(prod, datestring, '-')
print 1212
axis([min(prod), max(prod), min(datestring), max(datestring)])
print 8888
title(query)
grid(True)
plt.show()
cursor.close()
connection.close()
--------------------------
emacs基本 コマンド:
http://members3.jcom.home.ne.jp/yrq01133/emacs.html
C-x C-c | |||
Emacsの終了 |
Matplotlib まとめサイト:
Matplotlib Examples — Matplotlib 1.4.3 documentation
iPython notebook:
The IPython Notebook — IPython