Pythonのmatplotlibでグラフの間隔を調整する
matplotlibのsubplotやadd_subplotで描いたグラフ.
軸ラベルや軸目盛のフォントを調整すると,隣接するグラフに文字が被ったりする.
間隔を調整する方法を検索したのでメモ.
import matplotlib.pyplot as plt plt.subplots_adjust(wspace = 1.0, hspace = 1.0)
以上.
pythonで棒グラフを描く
pythonで棒グラフを描こうと思って,必要な要素がいろいろあるんだけど,
要素が散らばっていて,イマイチ検索に時間がかかるので個人的にここにまとめておく.
あとまあ,久々に更新しておきたいっていうのもある.
pyplotを使って,リストを棒グラフ化する.
とりあえず,pandasを使って,データフレーム化しているとする.
以下は例.
# 一部品のピッキング時間の平均と偏差(棒グラフとエラーバー) if len(one_picking_time_rw) != 0: fig = plt.figure(figsize = (GRAPH_WIDTH, GRAPH_HEIGHT)) ax = fig.add_subplot(1, 1, 1) ax.bar(1, one_picking_time_rw_ave, yerr = one_picking_time_rw_std, ecolor = "black", capsize = 20) ax.annotate(str(one_picking_time_rw_ave) + "+/-" + str(one_picking_time_rw_std), xy = (1 - 0.3, one_picking_time_rw_ave + one_picking_time_rw_std + 0.3), fontsize = TICKS_FONTSIZE) plt.yticks(np.arange(0, PICKING_TIME_MAX + 1, 0.1), fontsize = TICKS_FONTSIZE) plt.xticks(range(0, 3, 1), fontsize = TICKS_FONTSIZE) plt.grid(which = "major", color = "gray", linestyle = "--") plt.ylabel("Picking Time [s]", fontsize = LABEL_FONTSIZE) plt.savefig(OUT_DIR_FLAG + "PNG/" + "picking_time_psd_ave.png", bbox_inches = "tight") plt.savefig(OUT_DIR_FLAG + "PDF/" + "picking_time_psd_ave.pdf", bbox_inches = "tight") plt.savefig(OUT_DIR_FLAG + "EPS/" + "picking_time_psd_ave.eps", bbox_inches = "tight") plt.close()
png出力の結果はこんな感じ.
ax.bar(x, y, yerr, ecolor, capsize)
について,
- x:棒グラフのx座標位置
- y:棒グラフのy値
- yerr:エラーバーの値
- ecolor:エラーバーの色
- capsize:エラーバーの端の横棒のサイズ
ax.annotate(str, xy, fontsize)
でグラフ中に文字列を挿入できて,
- str:挿入する文字列
- xy:挿入する座標
以上.
参考URLは
matplotlib で棒グラフを描く – Python でデータサイエンス
グラフ中にデータラベル(数値)を挿入する(matplotlib) | mkacky
かな.
ディレクトリ,ファイル,パスを作成する方法
Pythonで,定型ファイルを処理するプログラムを作る際に,毎度ディレクトリの分類を変更したくなる.
実験内容が違うから当然ではあるが.
毎回ディレクトリの存在の調べ方,作成の仕方を調べないといけないのがめんどくさいので,リマインダのために書き残す.
・パスの存在確認
・ファイルの存在確認
・ディレクトリの存在確認
import os
os.path.exists(path)
pathの存在を確認する.ファイルもディレクトリも区別しない.返り値はTrue,Falseのブーリアン.
以下同様.
os.path.isfile(file_path)
os.path.isdir(dir_path)
次が,パスの作成.
os.makedirs(path)
makedirsは,path中に存在しないディレクトリが存在した場合に,そのディレクトリも一緒に作ってくれる.
要は,そのパスを無理やり作る感じ.
存在するパスを作ろうとするとエラーが返るので,
import os if os.path.exists(path) == False: os.makedirs(path)
ってやってる.
イラレでクリッピングマスクを一括削除する
PPとかでPDF出力し,Illustratorで編集しようとすると,あらゆるところにクリッピングマスクがついている.これを全部削除しないと,Texに載せた時に図の空白部分まで一緒に出力されてしまう.今までは一つずつ選択して解除して削除して選択して解除して削除して,,,,と地道にやっていたが,調べたら一括削除できるそう.
1. すべてを選択
2. オブジェクト > クリッピングマスク > 解除
3. 元クリッピングパスを適当に一つ選択する.そいつや他の元クリッピングパスは塗りも色もないオブジェクトのはずだから,選択 > 共通 > 塗りと線
4. del
(参照:http://kakiikanikan.blogspot.jp/2013/12/blog-post_9.html)
IllustratorCS2では3の手順はできなかったので,一括でクリッピングマスクを解除したのちに,一つずつ外枠を削除した.面倒ではあるけど,クリッピングマスクの解除の手間がなくなっただけでも全然違う.調べれば一括削除までできるのかな?
Python3.xをダウングレードしてOpenCV3を導入する
2017/06/21
AnacondaでPython3.6を導入し使用していた.OpenCVをpythonで使う必要があったので,調べたところ
conda install --c https://.... opencv
的なコマンドをやれば良いとの情報を得る.が,できない.conflictがあるとの警告.
どうも,opencv3はpython3.5までしか対応していない模様.
そこで,python3.6にOpenCV3を入れるか,pythonを3.5にする方法を検討.
仮想環境という手もあるが,いちいち環境を切り替えるのが面倒なので,Pythonをダウングレートして3.5に戻す方法を検索.
conda install python=3.5
これでバージョンダウン完了.
さらに,
conda install -c menpo opencv3
で,opencv3導入完了.
便利なコマンドでした.