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()

 

 

 

発展編:

bicycle1885.hatenablog.com

 

 

MySQLわかりやすいサイト ー使うツール: mysqldb(2つ)

(1)

"使い方

import MySQLdb
# DBへログイン
# localhostの場合は省略可
connection = MySQLdb.connect(db="test",user="test")

cursor = connection.cursor()
# SQL
cursor.execute("select * from users")
result = cursor.fetchall()

for row in result:
 p row[0]

cursor.close()
connection.close()

で、rowとしてSQL文の実行結果を1行づつ配列として取得できます。
また、MySQLdb.connectにcursorclass=MySQLdb.cursors.DictCursorを指定すると、
rowがカラム名と値の辞書になります。"

qiita.com

 

(2)

MySQL - Python入門から応用までの学習サイト

例:

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

 

 

--------

f:id:haruokny:20150813170533p:plain

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