開始行:
** スタイルの変更 [#ed158bb9]
- http://qiita.com/eriksoon/items/b93030ba4dc686ecfbba
plt.style.use('dark_background')
plt.style.use('ggplot')
** subplot同士で軸の共有 [#w81e2134]
#prettify{{
fig = plt.figure()
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122, sharey=ax1)
}}
** plotのラインカラー [#z76e86ba]
#prettify{{
plt.plot(frange_khz, 20 * np.log10(data), c='gray', linew...
}}
- [[→axis_limit_selecter.py>https://gist.github.com/peace...
-- figureの横に小さなヒストグラムを表示し、グラフのlim()...
#ref(axis_limit_selector.jpg,,50%)
** ドキュメント [#o3ab97a0]
[[→継承関係図>https://fossies.org/dox/matplotlib-1.4.3/cl...
[[→公式リファレンス>http://turbare.net/transl/scipy-lectu...
[[→docs>http://matplotlib.org/contents.html]]
[[→User's Guide>http://matplotlib.org/users/index.html]]
[[→Beginner’s Guide>http://matplotlib.org/users/beginner....
[[→Advanced Guide>http://matplotlib.org/users/developer.h...
** モジュールのインポート [#sce15176]
Matplotibを使ってグラフ描画するスクリプトは、PySideへその...
#prettify{{
import matplotlib.pyplot as plt
import numpy as np
}}
** webアプリケーションとしてグラフを保存する [#d73228cb]
多くの初心者は、Matplotlibをwebアプリケーションサーバで利...
[[→How-To-Matplotlib-Figure>http://matplotlib.org/faq/how...
#prettify{{
# do this before importing pylab or pyplot
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3])
fig.savefig('test.png')
}}
** axes handler[#jb102e49]
ax = fig.add_subplot(1,1,1)
ax = fig.add_axes([0.15, 0.1, 0.7, 0.3]) : [left, bottom...
xtext = ax.set_xlabel(' frequency')
ytext = ax.set_ylabel(' Amplitude')
for ax in fig.axes:
ax.grid(True)
** figure [#g2be3270]
[[→matplotlib.figure>http://matplotlib.org/api/figure_api...
[[→1.4.3.1 Figuresの使い方>http://turbare.net/transl/scip...
fig = plt.figure(figsize=(1,5), dpi=72, facecolor=[0,0,0...
class matplotlib.figure.Figure(figsize=None, dpi=None, f...
fig = plt.figure(figsize=(10,2), dpi=72, facecolor=[1,1,...
num: figureの数
figsize: figureのサイズ(width, height)単位はインチ
dpi: ドット/インチ
facecolor: 描画背景色
edgecolor: 縁の色
frameon: (bool) figureのフレームを描画するかどうか
** axes [#m9552554]
[[→matplotlib.pyplot.axis()>http://matplotlib.org/api/pyp...
ax = gca()
[xmin, xmax, ymin, ymax] = ax.axis()
ax.axis([xmin, xmax, ymin, ymax])
ax.axis('off')
ax.axis('scaled')
ax.axis('tight')
ax.axis('image')
ax.axis('auto')
ax.axis('normal')
** grid [#u605ac4d]
ax.grid()
** fiugre, axes handles[#f171971a]
plt.close('all')
fig, ax = plt.subplots()
[[→Artist>http://matplotlib.org/1.3.0/users/artists.html]]
** subplots [#kf4bf407]
[[→subplots_demo.py>http://matplotlib.org/examples/pylab_...
[[→subplotsの使い方(ipython)>https://gist.github.com/peac...
f, axarr = plt.subplots(2,2)
axarr[0, 0].plot(x, y)
** subplot2grid [#de3afb13]
plt.subplot2grid( (5,5), (0,0), colspan=3)
plt.subplot2grid( (5,5), (0,3), colspan=2)
plt.subplot2grid( (5,5), (1,4))
plt.subplot2grid( (5,5), (1,0), colspan=4)
plt.subplot2grid( (5,5), (2,0), colspan=5, rowspan=3)
** オブジェクト [#n9ff3de1]
#ref(Refference-matplotlib.pyplot.py)
- [[matplotlib.axes.axes>http://matplotlib.org/api/axes_a...
- [[matplotlib.lines>http://matplotlib.org/api/lines_api....
- matplotlib.lines
-- class matplotlib.lines.Line2D(xdata, ydata,...)
-- class matplotlib.lines.VertexSelector(line)
-- matplotlib.lines.segment_hits(cx, cy, x, y, radius)
** fig.tight_layout() [#o2c92f56]
subplotの中身について、tickables, axis, labels, titlesの...
[[→Tight Layout guide>http://matplotlib.org/1.4.1/users/t...
#ref(s-tight_layout0.jpg)
#ref(s-tight_layout1.jpg)
** Contour [#p5c671a5]
[[pyplot.contour>http://matplotlib.org/devdocs/api/pyplot...
contour(Z)
contour(Z, corner_mask=False, colors=(mpl_colors), alph...
contour(Z, cmap='hot')
**Colormap [#ebd62f48]
[[pyplot.Colormap>http://matplotlib.org/devdocs/api/color...
#ref(mpl_cmap.png,,20%)
[[→ Documenting the matplotlib colormaps>https://gist.git...
** matplotlib.specgram [#l60e827c]
ガボールウェーブレットの結果をスペクトログラムの様に表示...
[[→matplotlib.specgram>https://gist.github.com/peace098be...
#ref(figure_specgram.png,,noimg,30%)
#ref(figure_scarogram.png,,around,right,30%)
** タイトル title() [#b1ceeae7]
サンプルコードを見ていると、titleの表示方法が2種類見られ...
- Basic text commands
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title('axes title')
-
fig = plt.figure()
ax = fig.gca()
plt.title('axes title')
違いを調べるために、plt.title()の中身を確認したところ、中...
- plt.title()
def title(s, *args, **kwargs):
l = gca().set_title(s, *args, **kwargs)
draw_if_interactive()
return l
** 軸ラベル [#c7cdacd0]
plt.plot( [3,1,4,1,5,9,2,6,5], label = "Data 1")
plt.plot( [3,5,8,9,7,9,3,2,3], label = "Data 2")
plt.legend() # 凡例を表示
plt.title("Graph Title")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
* Matplotlib イベントハンドラ [#h9f7fc01]
Matplotlibでは、マウスクリックやドラッグ、キーボード操作...
[[→Event handling and picking>http://matplotlib.org/users...
** イベントの接続 (mpl_connect) [#w57087dd]
# --
import matplotlib.pyplot as plt
import numpy as np
# --
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(10))
# --
def onclick(event):
# Eventの基本プロパティ (matplotlib.backend_bases.Eve...
print event.name # イベント名
print event.canvas # FigureCanvasインスタンス
print evnet.guiEvent # トリガーされたGUIイベント
# MouseEventのプロパティ
print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
event.button, event.x, event.y, event.xdata, even...
# --
cid = fig.canvas.mpl_connect('button_press_event', oncli...
plt.show()
** イベントハンドラでfigure,axesの呼び出し [#a939a3c2]
line, = plt.plot(X)
line.figure
line.figure.canvas
line.figure.canvas.draw()
line.set_x(x1)
line.set_y(y1)
line.get_xdata()
line.get_ydata()
line.axes
** [[Event handling and picking>http://matplotlib.org/use...
- [[Event name Class and description>http://matplotlib.or...
-- ‘button_press_event’ MouseEvent - mouse button is pres...
-- ‘button_release_event’ MouseEvent - mouse button is re...
-- ‘draw_event’ DrawEvent - canvas draw
-- ‘key_press_event’ KeyEvent - key is pressed
-- ‘key_release_event’ KeyEvent - key is released
-- ‘motion_notify_event’ MouseEvent - mouse motion
-- ‘pick_event’ PickEvent - an object in the canvas is se...
-- ‘resize_event’ ResizeEvent - figure canvas is resized
-- ‘scroll_event’ MouseEvent - mouse scroll wheel is rolled
-- ‘figure_enter_event’ LocationEvent - mouse enters a ne...
-- ‘figure_leave_event’ LocationEvent - mouse leaves a fi...
-- ‘axes_enter_event’ LocationEvent - mouse enters a new ...
-- ‘axes_leave_event’ LocationEvent - mouse leaves an axes
*** [[Event bases>http://matplotlib.org/users/event_handl...
event.name
event.canvas
event.guiEvent
*** [[Mouse Event>http://matplotlib.org/users/event_handl...
event.x
event.y
event.xdata
event.ydata
event.inaxes
*** [[pick event>http://matplotlib.org/users/event_handli...
event.artist
event.ind
line = event.artist
xdata = line.get_xdata()
ydata = line.get_ydata()
ind = event.ind
x0 = xdata[ind]
y0 = ydata[ind]
* 軸の設定 [#f88d8f7f]
** xlim, ylim [#h3f78fde]
カレントのaxesの最大値と最小値を取得する
[[→matplotlib.pyplot.xlim()>http://matplotlib.org/api/pyp...
xmin, xmax = plt.xlim() # return the current xlim
plt.xlim( (xmin, xmax) ) # set the xlim to xmin, xmax
plt.xlim( xmin, xmax ) # set the xlim to xmin, xmax
しかしこれだと、PySideでは使いづらい。中身をみると結局はg...
[[→matplotlib.axes.get_xlim()>http://matplotlib.org/api/a...
fig, ax = plt.subplot(111)
xmin, xmax = ax.get_xlim()
ax.set_xlim( xmin, xmax )
** 目盛の設定 [#w3d7f234]
# 目盛を消す
ax2.set_xticklabels([])
ax2.set_yticklabels([])
plt.locator_params(nbins=25, axis='x', tight=True)
plt.locator_params(nbins=10, axis='y', tight=True)
* clim [#sf0b7f93]
[[→Image tutoriall>http://matplotlib.org/users/image_tuto...
定義は以下
AxisImage.set_clim()
通常のaxesにはset_climは存在しない。axesハンドルからAxisI...
# for im in ax1.get_images():
# ax1.set_clim(ax2.get_ylim())
im.set_clim(ax2.get_ylim())
imgplot = plt.imshow(img)
imgplot.set_clim(0, 0.7)
** contourfの場合 [#a9caa6a6]
cf = contourf(X,Y,Z)
cmin, cmax = c.get_clim()
** Matplotlib Style Sheet (スタイルシート) [#q1f51f5b]
- [[A sample matplotlibrc file>http://matplotlib.org/1.3....
** ピーク検出 [#i2c6bc3a]
''' ピークをプロット Scipyでピーク検出 '''
from scipy import signal
# 極大値検索
maxId = signal.argrelmax(Pdata_ave, order=10, mod...
maxId = maxId[0][:]
self.axes.hold(True)
self.axes.plot(self.plot_frange[maxId], Pdata_ave...
self.axes.hold(False)
for id in maxId:
s = '%0.1f' % (self.plot_frange[id])
self.axes.annotate(s, xy=(self.plot_frange[id...
horizontalalignment='cente...
** GWTグラフのTips [#p0566f52]
# def imshow(X, cmap=None, norm=None, aspect=None, in...
# vmin=None, vmax=None, origin=None, exten...
# filternorm=1, filterrad=4.0, imlim=None,...
# hold=None, **kwargs):
#
#ref(figure_1.png,,30%)
なぜかわからないが、そのまま使うと外側に空白ができる。
gdata = 20*np.log10(gwt.T)
extent = t[0], t[-1], f[0], f[-1]
plt.imshow(gdata, cmap='jet', extent=extent, origin='...
plt.axis('auto')
#ref(figure_2.png,,30%)
axis('tight')を使うことで綺麗に表示された。
gdata = 20*np.log10(gwt.T)
extent = t[0], t[-1], f[0], f[-1]
plt.imshow(gdata, cmap='jet', extent=extent, origin='...
plt.axis('tight')
終了行:
** スタイルの変更 [#ed158bb9]
- http://qiita.com/eriksoon/items/b93030ba4dc686ecfbba
plt.style.use('dark_background')
plt.style.use('ggplot')
** subplot同士で軸の共有 [#w81e2134]
#prettify{{
fig = plt.figure()
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122, sharey=ax1)
}}
** plotのラインカラー [#z76e86ba]
#prettify{{
plt.plot(frange_khz, 20 * np.log10(data), c='gray', linew...
}}
- [[→axis_limit_selecter.py>https://gist.github.com/peace...
-- figureの横に小さなヒストグラムを表示し、グラフのlim()...
#ref(axis_limit_selector.jpg,,50%)
** ドキュメント [#o3ab97a0]
[[→継承関係図>https://fossies.org/dox/matplotlib-1.4.3/cl...
[[→公式リファレンス>http://turbare.net/transl/scipy-lectu...
[[→docs>http://matplotlib.org/contents.html]]
[[→User's Guide>http://matplotlib.org/users/index.html]]
[[→Beginner’s Guide>http://matplotlib.org/users/beginner....
[[→Advanced Guide>http://matplotlib.org/users/developer.h...
** モジュールのインポート [#sce15176]
Matplotibを使ってグラフ描画するスクリプトは、PySideへその...
#prettify{{
import matplotlib.pyplot as plt
import numpy as np
}}
** webアプリケーションとしてグラフを保存する [#d73228cb]
多くの初心者は、Matplotlibをwebアプリケーションサーバで利...
[[→How-To-Matplotlib-Figure>http://matplotlib.org/faq/how...
#prettify{{
# do this before importing pylab or pyplot
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3])
fig.savefig('test.png')
}}
** axes handler[#jb102e49]
ax = fig.add_subplot(1,1,1)
ax = fig.add_axes([0.15, 0.1, 0.7, 0.3]) : [left, bottom...
xtext = ax.set_xlabel(' frequency')
ytext = ax.set_ylabel(' Amplitude')
for ax in fig.axes:
ax.grid(True)
** figure [#g2be3270]
[[→matplotlib.figure>http://matplotlib.org/api/figure_api...
[[→1.4.3.1 Figuresの使い方>http://turbare.net/transl/scip...
fig = plt.figure(figsize=(1,5), dpi=72, facecolor=[0,0,0...
class matplotlib.figure.Figure(figsize=None, dpi=None, f...
fig = plt.figure(figsize=(10,2), dpi=72, facecolor=[1,1,...
num: figureの数
figsize: figureのサイズ(width, height)単位はインチ
dpi: ドット/インチ
facecolor: 描画背景色
edgecolor: 縁の色
frameon: (bool) figureのフレームを描画するかどうか
** axes [#m9552554]
[[→matplotlib.pyplot.axis()>http://matplotlib.org/api/pyp...
ax = gca()
[xmin, xmax, ymin, ymax] = ax.axis()
ax.axis([xmin, xmax, ymin, ymax])
ax.axis('off')
ax.axis('scaled')
ax.axis('tight')
ax.axis('image')
ax.axis('auto')
ax.axis('normal')
** grid [#u605ac4d]
ax.grid()
** fiugre, axes handles[#f171971a]
plt.close('all')
fig, ax = plt.subplots()
[[→Artist>http://matplotlib.org/1.3.0/users/artists.html]]
** subplots [#kf4bf407]
[[→subplots_demo.py>http://matplotlib.org/examples/pylab_...
[[→subplotsの使い方(ipython)>https://gist.github.com/peac...
f, axarr = plt.subplots(2,2)
axarr[0, 0].plot(x, y)
** subplot2grid [#de3afb13]
plt.subplot2grid( (5,5), (0,0), colspan=3)
plt.subplot2grid( (5,5), (0,3), colspan=2)
plt.subplot2grid( (5,5), (1,4))
plt.subplot2grid( (5,5), (1,0), colspan=4)
plt.subplot2grid( (5,5), (2,0), colspan=5, rowspan=3)
** オブジェクト [#n9ff3de1]
#ref(Refference-matplotlib.pyplot.py)
- [[matplotlib.axes.axes>http://matplotlib.org/api/axes_a...
- [[matplotlib.lines>http://matplotlib.org/api/lines_api....
- matplotlib.lines
-- class matplotlib.lines.Line2D(xdata, ydata,...)
-- class matplotlib.lines.VertexSelector(line)
-- matplotlib.lines.segment_hits(cx, cy, x, y, radius)
** fig.tight_layout() [#o2c92f56]
subplotの中身について、tickables, axis, labels, titlesの...
[[→Tight Layout guide>http://matplotlib.org/1.4.1/users/t...
#ref(s-tight_layout0.jpg)
#ref(s-tight_layout1.jpg)
** Contour [#p5c671a5]
[[pyplot.contour>http://matplotlib.org/devdocs/api/pyplot...
contour(Z)
contour(Z, corner_mask=False, colors=(mpl_colors), alph...
contour(Z, cmap='hot')
**Colormap [#ebd62f48]
[[pyplot.Colormap>http://matplotlib.org/devdocs/api/color...
#ref(mpl_cmap.png,,20%)
[[→ Documenting the matplotlib colormaps>https://gist.git...
** matplotlib.specgram [#l60e827c]
ガボールウェーブレットの結果をスペクトログラムの様に表示...
[[→matplotlib.specgram>https://gist.github.com/peace098be...
#ref(figure_specgram.png,,noimg,30%)
#ref(figure_scarogram.png,,around,right,30%)
** タイトル title() [#b1ceeae7]
サンプルコードを見ていると、titleの表示方法が2種類見られ...
- Basic text commands
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title('axes title')
-
fig = plt.figure()
ax = fig.gca()
plt.title('axes title')
違いを調べるために、plt.title()の中身を確認したところ、中...
- plt.title()
def title(s, *args, **kwargs):
l = gca().set_title(s, *args, **kwargs)
draw_if_interactive()
return l
** 軸ラベル [#c7cdacd0]
plt.plot( [3,1,4,1,5,9,2,6,5], label = "Data 1")
plt.plot( [3,5,8,9,7,9,3,2,3], label = "Data 2")
plt.legend() # 凡例を表示
plt.title("Graph Title")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
* Matplotlib イベントハンドラ [#h9f7fc01]
Matplotlibでは、マウスクリックやドラッグ、キーボード操作...
[[→Event handling and picking>http://matplotlib.org/users...
** イベントの接続 (mpl_connect) [#w57087dd]
# --
import matplotlib.pyplot as plt
import numpy as np
# --
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(10))
# --
def onclick(event):
# Eventの基本プロパティ (matplotlib.backend_bases.Eve...
print event.name # イベント名
print event.canvas # FigureCanvasインスタンス
print evnet.guiEvent # トリガーされたGUIイベント
# MouseEventのプロパティ
print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
event.button, event.x, event.y, event.xdata, even...
# --
cid = fig.canvas.mpl_connect('button_press_event', oncli...
plt.show()
** イベントハンドラでfigure,axesの呼び出し [#a939a3c2]
line, = plt.plot(X)
line.figure
line.figure.canvas
line.figure.canvas.draw()
line.set_x(x1)
line.set_y(y1)
line.get_xdata()
line.get_ydata()
line.axes
** [[Event handling and picking>http://matplotlib.org/use...
- [[Event name Class and description>http://matplotlib.or...
-- ‘button_press_event’ MouseEvent - mouse button is pres...
-- ‘button_release_event’ MouseEvent - mouse button is re...
-- ‘draw_event’ DrawEvent - canvas draw
-- ‘key_press_event’ KeyEvent - key is pressed
-- ‘key_release_event’ KeyEvent - key is released
-- ‘motion_notify_event’ MouseEvent - mouse motion
-- ‘pick_event’ PickEvent - an object in the canvas is se...
-- ‘resize_event’ ResizeEvent - figure canvas is resized
-- ‘scroll_event’ MouseEvent - mouse scroll wheel is rolled
-- ‘figure_enter_event’ LocationEvent - mouse enters a ne...
-- ‘figure_leave_event’ LocationEvent - mouse leaves a fi...
-- ‘axes_enter_event’ LocationEvent - mouse enters a new ...
-- ‘axes_leave_event’ LocationEvent - mouse leaves an axes
*** [[Event bases>http://matplotlib.org/users/event_handl...
event.name
event.canvas
event.guiEvent
*** [[Mouse Event>http://matplotlib.org/users/event_handl...
event.x
event.y
event.xdata
event.ydata
event.inaxes
*** [[pick event>http://matplotlib.org/users/event_handli...
event.artist
event.ind
line = event.artist
xdata = line.get_xdata()
ydata = line.get_ydata()
ind = event.ind
x0 = xdata[ind]
y0 = ydata[ind]
* 軸の設定 [#f88d8f7f]
** xlim, ylim [#h3f78fde]
カレントのaxesの最大値と最小値を取得する
[[→matplotlib.pyplot.xlim()>http://matplotlib.org/api/pyp...
xmin, xmax = plt.xlim() # return the current xlim
plt.xlim( (xmin, xmax) ) # set the xlim to xmin, xmax
plt.xlim( xmin, xmax ) # set the xlim to xmin, xmax
しかしこれだと、PySideでは使いづらい。中身をみると結局はg...
[[→matplotlib.axes.get_xlim()>http://matplotlib.org/api/a...
fig, ax = plt.subplot(111)
xmin, xmax = ax.get_xlim()
ax.set_xlim( xmin, xmax )
** 目盛の設定 [#w3d7f234]
# 目盛を消す
ax2.set_xticklabels([])
ax2.set_yticklabels([])
plt.locator_params(nbins=25, axis='x', tight=True)
plt.locator_params(nbins=10, axis='y', tight=True)
* clim [#sf0b7f93]
[[→Image tutoriall>http://matplotlib.org/users/image_tuto...
定義は以下
AxisImage.set_clim()
通常のaxesにはset_climは存在しない。axesハンドルからAxisI...
# for im in ax1.get_images():
# ax1.set_clim(ax2.get_ylim())
im.set_clim(ax2.get_ylim())
imgplot = plt.imshow(img)
imgplot.set_clim(0, 0.7)
** contourfの場合 [#a9caa6a6]
cf = contourf(X,Y,Z)
cmin, cmax = c.get_clim()
** Matplotlib Style Sheet (スタイルシート) [#q1f51f5b]
- [[A sample matplotlibrc file>http://matplotlib.org/1.3....
** ピーク検出 [#i2c6bc3a]
''' ピークをプロット Scipyでピーク検出 '''
from scipy import signal
# 極大値検索
maxId = signal.argrelmax(Pdata_ave, order=10, mod...
maxId = maxId[0][:]
self.axes.hold(True)
self.axes.plot(self.plot_frange[maxId], Pdata_ave...
self.axes.hold(False)
for id in maxId:
s = '%0.1f' % (self.plot_frange[id])
self.axes.annotate(s, xy=(self.plot_frange[id...
horizontalalignment='cente...
** GWTグラフのTips [#p0566f52]
# def imshow(X, cmap=None, norm=None, aspect=None, in...
# vmin=None, vmax=None, origin=None, exten...
# filternorm=1, filterrad=4.0, imlim=None,...
# hold=None, **kwargs):
#
#ref(figure_1.png,,30%)
なぜかわからないが、そのまま使うと外側に空白ができる。
gdata = 20*np.log10(gwt.T)
extent = t[0], t[-1], f[0], f[-1]
plt.imshow(gdata, cmap='jet', extent=extent, origin='...
plt.axis('auto')
#ref(figure_2.png,,30%)
axis('tight')を使うことで綺麗に表示された。
gdata = 20*np.log10(gwt.T)
extent = t[0], t[-1], f[0], f[-1]
plt.imshow(gdata, cmap='jet', extent=extent, origin='...
plt.axis('tight')
ページ名: