Hatena::ブログ(Diary)

Life, don’t talk to me about life. このページをアンテナに追加

2013-03-07

matplotlib の errorbar で部分的にエラーバーのハット部分を削除する

| 17:37 | matplotlib の errorbar で部分的にエラーバーのハット部分を削除するを含むブックマーク matplotlib の errorbar で部分的にエラーバーのハット部分を削除するのブックマークコメント

matplotlib での作図について、質問されたのですが、ちょっとトリッキーだったので自分用にメモを残すことにしました。

まず基本的な用件として

という状況。

以下のpythonコードでまずはやってみました。

#!/usr/bin/env python

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1., 2., 3.])
y = np.array([3., 3., 3.])

yerr1 = np.array([0.5, 0. , 0.5]) # lower bound
yerr2 = np.array([0.2, 0.3, 0. ]) # upper bound

fig = plt.figure()
ax = fig.add_subplot(111)
ax.errorbar(x, y, yerr=[yerr1, yerr2], fmt='o', capsize=10, ms=10)
ax.set_xlim(0,4)
ax.set_ylim(2,4)

plt.savefig('test_errorbar0.png', dpi=150)

得られた結果がこちら。

f:id:mojin:20130308011602p:image

しかしながら、これだとエラーの値がゼロの時にもエラーバーが描かれてハット部分が表示されてしまうというのが問題らしく、これを消去したいとのことでした。で、プログラミング能力の欠如から、その場ではすぐにわからなかったのですが、悔しかったのでいろいろ試行錯誤した結果、なんとか以下のように目的を達成することができました。

f:id:mojin:20130308011559p:image

最終的なコードはこんな感じ。

#!/usr/bin/env python

import matplotlib.pyplot as plt
import numpy as np

def remove_zero_errorcap(capline, error):
    """
    This function remove elements from the input capline object if error is zero.

    capline: capline object returned from matplotlib.pyplot.errorbar()
    error: numpy array containing error to be considered
    """
    capline.set_data(np.delete(capline.get_data()[0], np.where(error==0.)),
                     np.delete(capline.get_data()[1], np.where(error==0.)))

x = np.array([1., 2., 3.])
y = np.array([3., 3., 3.])

yerr1 = np.array([0.5, 0. , 0.5]) # lower bound
yerr2 = np.array([0.2, 0.3, 0. ]) # upper bound

fig = plt.figure()
ax = fig.add_subplot(111)

# matplotlib.pyplot.errorbar returns 3 elements (see the official documents)
#
#     plotline: Line2D instance
#         x, y plot markers and/or line
#     caplines: list of error bar cap
#         Line2D instances (matplotlib.lines.Line2D class)
#     barlinecols: list of
#         LineCollection instances for the horizontal and vertical error ranges.  (matplotlib.collections.LineCollection class)
#
#
# plot errorbar as usual
plotline, caplines, barlinecols = ax.errorbar(x, y, yerr=[yerr1, yerr2], fmt='o', capsize=10, ms=10)

# the function "remove_zero_errorbar" removes the errorcaps where the error is zero
#
# caplines contains 2 elements
# - caplines[0]: (x, y-yerr1)
# - caplines[1]: (x, y+yerr2)
remove_zero_errorcap(caplines[0], yerr1)
remove_zero_errorcap(caplines[1], yerr2)

ax.set_xlim(0,4)
ax.set_ylim(2,4)

plt.savefig('test_errorbar1.png')

matplotlib.pyplot.errorbar から返ってくるcaplinesを展開して、そのなかでエラーゼロの時にその要素を削除するような関数remove_zero_errorcapを定義しました。caplinesはcaplines[0]が、0番目の要素にx座標、1番目の要素にマイナス側のエラーバーの点の配列がそれぞれ入っていて、get_data で呼び出すことができます。で、エラーゼロの要素は numpy.where で見つけて、そこを numpy.delete して、caplines を set_data で上書きしてやるというわけです。

もっと簡単な方法がありそうなので、詳しい人がいたら教えてほしいです。

2年以上放置してたのか…

恐ろしく日本語力が衰退しているなあ。というか、普段英語で呼んでいるものを日本語でなんて言うかわからない、わすれた、という事例が多い気がする。

参考にしたサイト

2011-01-12 このエントリーを含むブックマーク このエントリーのブックマークコメント

お久しぶりですm(__)mお久しぶりですm(__)m 2012/05/08 01:33 諭吉さんのliveでお会いしました望月薫ですm(__)mよしかさんとのいろいろが解決しましたら連絡をと。資金がありませんレコーディング相談のって下さいませm(__)m

望月薫望月薫 2012/05/08 01:35 Sk8_life.music@ezweb.ne.jpですm(__)m

2010-05-01

MacPortsのmatplotlibがインストールできない

| 12:34 | MacPortsのmatplotlibがインストールできないを含むブックマーク MacPortsのmatplotlibがインストールできないのブックマークコメント

もう半年以上放置しているんですね。。。大して読者もいないと思うんでまあいいんですが。

ツイッターを始めるとブログ更新がなくなる問題そのものであります。

前置きはともかく、タイトルのとおり、MacPortsでpy25-matplotlib, py26-matplotlibがインストール出来ないのです。ビルドの途中で止まってしまいます。問題としては404 Not Foundと同じだと思うのですが、開発者の方に「うちじゃ再現しないし、ログ見てもわからん」とスルーされてしまったようです。

どうしたらいいかよくわからないので、MacPorts全部削除して最初からやり直すのもいいのかな、なんてドツボにハマリそうなことまで考えています。その時に参考になりそうなのは、このあたりですね。

MacPorts - MacWiki

no title

Macports の再インストール - Hidde’s Tips

(追記1)

MacPortsを再インストールしました。Xcode 3.1.4をまず入れてみました。ええ、まだLeopardなんですよ。

(追記2)

ダメですたorz

(追記3)

できました。どういうわけかわかりませんが、X11がアンインストールされてしまっていたようで、そのせいでした。XQuartzの最新のやつをインストールして解決。それにしてもX11がアンインストールされてしまったことの方が謎だわ。

Ubuntuを10.04にアップデートした

| 12:34 |  Ubuntuを10.04にアップデートしたを含むブックマーク  Ubuntuを10.04にアップデートしたのブックマークコメント

これもタイトルの通りです。私はxubuntu 9.10からアップグレードしました。コマンドライン

update-manager -d

だったかな、と打ち込んで、クリックを繰り返したらアップグレードできました。特にエラーも無く立ち上がって使えています。今のところ深刻な問題としては特定の文字列uim-anthyで変換しようとするとアプリごとクラッシュするというところですね。あんまりちゃんと検証していないのですが例えば、Firefox検索窓に「にほんのれきし」と入力してスペースを押して変換しようとするとFirefoxごとクラッシュします。バイナリ自分ビルドしたりした方がいいのかもしれません。

(追記1)

G-HAL版の辞書との互換性の問題だったようです。辞書ファイルを削除したら大丈夫でした。

しかしながら、G-HAL版パッチを当ててubuntu用のバイナリを作れず、どうしたものかというところです。

2009-10-30

Xubuntuを9.10にアップグレードした

| 17:27 | Xubuntuを9.10にアップグレードしたを含むブックマーク Xubuntuを9.10にアップグレードしたのブックマークコメント

アップデートマネージャーから普通にアップデートしました。だいたいトータルで2時間半くらいかかりましたかね。概ね問題無しな感じです。気になった点をば。

f:id:mojin:20091030172021p:image

↑のような感じになります。あと、エラーメッセージというか、警告メッセージが出ます。

$ evince

(evince:14141): EggSMClient-WARNING **: Failed to connect to the session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed


(evince:14141): Gtk-WARNING **: Attempting to read the recently used resources file at `/local/home/monodera/.recently-used.xbel', but the parser failed: Failed to open file '/local/home/mojin/.recently-used.xbel': Permission denied.

** (evince:14141): WARNING **: Failed to create file '/local/home/mojin/.gnome2/evince/evince-crashed.L44L2U': Permission denied

AppArmorのせいという噂もありますが、よくわかりません。

(追記) AppArmorを止めたら直りました。よかったです。一応ファイアウォールの中のマシンだし、自分しか使わないから、、、なんて。こんな感じの見ためになりました。

f:id:mojin:20091102142553p:image

Firefox日本語フォントが汚いです。~/.fonts.confで設定しているんですが、上書きされてるか無視されてる模様。uimでの変換候補の表示もちょっとかなあ。gtk2アプリ? よくわかりません。

f:id:mojin:20091030172022p:image

上のような感じです。たぶん中国フォントが優先されてしまっているんだと思います。

(追記) .fonts.confを直したらいけました。日本語フォントASCIIフォントの合成にしていたんですが、日本語フォントを先に指定して、その上にアルファベットフォントを上書きしてたようで、逆にしたら直りました。多分こういう解釈であってるんだと思います。そのかわり、

$ firefox

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

(firefox:20429): Gdk-WARNING **: XID collision, trouble ahead

と言うエラーが出るようになってしまいまいた。:-<

  • ctrlをaの隣にもってくるのにちょっと難儀した

emacs使いなら常識のswapcapsもしくはnocapsですが、以前は/etc/default/console-setupで設定していたのが効かなくなっていました。そこでぐぐって、ログイン時に

$ setxkbmap -option "ctrl:nocaps"

を実行するように変更しました。

たぶん自分環境だけだと思いますが、ログインログアウトにやたら時間がかかります。原因は分かりません。


とりあえずこんなところですが、フォントは早めになんとかしたいですなあ。

2009-10-02

ATOK for Macでジャストシステム契約管理エージェントがものすごくうざい件

| 04:24 | ATOK for Macでジャストシステム契約管理エージェントがものすごくうざい件を含むブックマーク ATOK for Macでジャストシステム契約管理エージェントがものすごくうざい件のブックマークコメント

ATOK for Mac 2009の試用版が出たのでだいたい一ヶ月前にインストールしてしばらく使っていました。もうそろそろ試用期間が終了するのでジャストシステム契約管理エージェントってのが起動して「もうすぐあんたの試用期間が終わりますよ。もしよろしかったら購入してはいかがですか?」的なメッセージが表示されるのですが、これが、1時間に一回くらい起動するもんでうっとうしいったらありゃしない。DVDフルスクリーンで見てると突然起動してウィンドウサイズが変わるし、このエージェントウィンドウは一番上のレイヤーに固定になっている。これはひどいってもんです。一日一回起動とか、OSの起動時かATOKの初回起動時に出るだけとかならさりげなくていいんですけど、毎時出られると製品に対する印象が悪くなるんじゃないですかねえ。。。押しつけがましすぎるのもだめだと思います。

で、あまりにうっとおしいんで、これを出てこなくしましたw 契約管理エージェントは /Library/JustSystems/LMA/jslmaNotifyUI.app みたいなので、こいつのパーミッション適当にいじって、

$ sudo chmod 400 /Library/JustSystems/LMA/jslmaNotifyUI.app

ってやったら起動しなくなりました。もしかしたら再起動などが必要かもしれませんが。

100円エコPCマーケット100円エコPCマーケット 2011/08/03 12:23 100円エコPCマーケット

メルマガに登録するだけで、なんとパソコンが当たるチャンスです!
詳しくは、ホームページをご覧ください!

NaotakeNaotake 2011/10/26 05:49 エージェントさん(UIじゃないほう)がbgで起動してて気持ち悪かったのでライブラリ直下のディレクトリごと葬ってみました

2009-09-25

iPod nano 5G 16GB Black を買った

| 17:32 |  iPod nano 5G 16GB Black を買ったを含むブックマーク  iPod nano 5G 16GB Black を買ったのブックマークコメント

タイトルのとおりです。ビデオカメラが目玉機能ってことでしたが、私はFMラジオとボイスメモに惹かれました。

一緒にバッファローシリコンケースを買いました。

こいつが、なんか小さいんですよ。個体差なのか、こういうもんなのか。小さい上になんとなく上部がぴったりしてなくてね。

しばらく使ってみても伸びて馴染む様子がないので、購入したお店の購入した店員さんに聞いてみるも、「まー、こういうものですよー」とのこと。なんかなあ。悔しかったので、競合店でエレコムのを買ってみました。まだ開封してないのでなんともいえませんが、ジャストサイズだといいなあ。

2009-09-09

エールフランスのExit Row

| 10:03 | エールフランスのExit Rowを含むブックマーク エールフランスのExit Rowのブックマークコメント

最近はどの航空会社も少しでも収益をあげようと(?)、ちょっと料金を追加して、主に席間が若干ゆったりしたプレミアムエコノミーみたいな座席を作っていますが、さっきエールフランスチェックインしたところ、そのような席がなんとExit Rowのところに。まあたしかに、ここは前が広いんでいいことはいいんですが、非常時には乗客の避難の手助けをしないといけないところ。先日大きな事故を起こしたばかりのエールフランスなのになんなんでしょう。。。ちなみにKLMもそうだとの情報をいただきましたが、両者はいま一緒の会社ですからね。さもありなん。

以上貧乏人の戯れ言でした。

そういえば、以前聞いた噂によると、チェックインのときに「exit seatでお願いします。空いてたら」みたいにいうと、手助けできるかどうかを試すためにカウンターの人が英語で話はじめて、理解できないとアウト、とかいう話でしたが、そのへんは都市伝説なんですかね。

2009-09-08

英Amazonでル・クルーゼの鍋が激安な件

| 21:37 | 英Amazonでル・クルーゼの鍋が激安な件を含むブックマーク 英Amazonでル・クルーゼの鍋が激安な件のブックマークコメント

英アマゾンで昔買い物したときにメルマガを配信する項目にチェックを入れてて、セール情報なんかがくるんですけど、先日来たものに、ル・クルーゼの鍋のセールが載っていました。

f:id:mojin:20090909044120p:image

ここには「最大40%オフ」って書いてありますが、実際にページを開いてみると、かなりの激安であることがわかりました。

セールのページ

f:id:mojin:20090908211941p:image

最初のやつを拡大すると

f:id:mojin:20090908211942p:image

となっています。35.23英ポンドですね。

これをYahoo! Currency Converterで円換算してみると、だいたい5300円くらいです。安い!

f:id:mojin:20090908211943p:image

一方、同じ商品日本で買うとどのくらいするか見てみると、

で、13300円みたいです。英アマゾン圧倒的!!!!!

しかしながら残念なことに、

DIY & Tools, Electronics, Health (excluding medicine), Home & Garden and Kitchen items

*1252438646* United Kingdom (England, Northern Ireland, Scotland and Wales), Austria, Belgium, Bulgaria, Cyprus, Estonia, France, Germany, Hungary, Ireland (Republic of), Italy, Latvia, Luxembourg, Netherlands, Portugal, Slovakia, Slovenia, Spain and Sweden.

Amazon.co.uk Help: Delivery Restrictions

とありまして、日本には配達できないようですね。仲介業者とかあるんですかね。

あと、ル・クルーゼ日本仕様のやつは、さび止め加工がしてあるらしく、その辺が気になる人は注意が必要みたいです。

(追記)

ロンドンの地下鉄の初乗り(普通に切符を買った場合)は4ポンドみたいなんで、わずか9回。東京の地下鉄の初乗りは160円だから、単純計算すると1440円相当ってこと?や、安い!

2009-07-23

EeePC1005を買った

| 22:58 |  EeePC1005を買ったを含むブックマーク  EeePC1005を買ったのブックマークコメント

旅行に持って行こうと買いました。MacBook職場から支給されてる上に、一回盗難にあったからもうね。っていう。

本命はEeePC1101だったのですが、どうも発売が間に合わなそうだったんで1005に。1008はみためオサレだけど、デザインに金を積む感じにはならなかったんで、まあいいやと。バッテリーが10時間くらいもつってのが売りでしょうかね。まだ試してないんでわかりませんが。いまんところ、起動して、Windows Updateをかけて、Firefoxインストールした程度です。

ちなみに、フランスだとキーボードがAZERTYでちょっとアレなんで、Amazon.comマーケットプレイスから、国際発送ができるところにしました。フランス消費税というか関税、20パーセントぱねぇっす。結局日本円にして5万円くらいかかっちゃったのかなあ。うーん、まあ高すぎるとも思わないけど、うーん、しょうがないですよね。

旅行までにはなんとかセットアップしたいと思います。

日本語入力ってどうしたらいいんでしょうね?英語WindowsXP Homeなんですけど。

あ、そうそう。たった数ヶ月Macを使ってただけで、Windowsすげーつかいにくい、ってなってて自分でも驚きでした。右クリックとか超めんどくさいし。2本指タップさせれ、みたいな。

ネトゲ廃人ぽにゃたの場合ネトゲ廃人ぽにゃたの場合 2009/07/29 17:30
働かざるものヤルべし!!!ほんと働いたら負けだわ(´Д`;)
オレ真面目に会社員やってたけど、今はその頃より月の稼ぎ3倍だよ?
初めてヤった時は4万だけだったけど、今じゃ平均一回7万だかんなwww
もうアフォらしくて会社員ヤメたしwwwww 毎日ネトゲ最高wwww

http://netoge.bolar.net/g4RKhRE/

俺の銃が火を噴くぜwwww俺の銃が火を噴くぜwwww 2009/08/09 11:09
始めた途端に誘いの嵐だったからちょっとパニクったわwww
とりま玩具プ レ イ好きのビ ッ チを選んで楽勝で即 ハ メ〜(^-^)v
ハ メ て 5 万 貰 え るとかカルチャーショックだったけど、
これやらないやつはただのバカだろwwwwwwwww

http://ene.creampie2.net/AYEhfna/

じゃぶぁー!!!!じゃぶぁー!!!! 2009/08/12 21:25
やっぱコスしてもらってハ メ るのが一番萌えに燃えるって!!!!!!
昨日はエ○ァの新キャラコスしてもらったもんねー(*´Д`)ハァハァ
興 奮しすぎて無意識に服着せたままパ ン ツ ビリビリに破いてバック突きしまくっちゃったwwww(テヘw)
既に次はハ○ヒで決定してるしwktkが止まらんねぇぇぇwwwwwwwwww

http://kachi.strowcrue.net/3Vy2MHX/

よーちよちよちよち!!!!よーちよちよちよち!!!! 2009/08/25 01:12
最近ここの女におしゃぶり咥えさせてガラガラ持たせて
パッコンパッコンしてやったんだが、反応がハンパネェっすwwwwwwww

「気持ちいいですぅーん!!はあっぁぁああ!!!」

こんな萌えボイスで叫ばれたら余計に興 奮するっての!!!!!!

仕方ないからずぶずぶ奥まで挿れてあげたら
ずっと潮ピュルーって飛ばして痙攣しまくりー(・∀・)ぐっふふ

http://okane.d-viking.com/yHK89ZV/

2009-07-09

Firefox-3.5を入れた

| 09:55 |  Firefox-3.5を入れたを含むブックマーク  Firefox-3.5を入れたのブックマークコメント

の前に、Ubuntuをようやくintrepidからjauntyにしました。特に問題もなく、あ、なんかリブートしたときにおかしな挙動になることはあるんですが、まあ許容範囲かな(違うかも。あんまりちゃんと調べてない)というレベルアップグレードできてよかったです。

さて、jaunty用のfirefox-3.5がリポジトリに来たようで(Ubuntu ? Error)、さっそくインストールしてみましたが、Ubuntuの公式リポジトリ下にあるくせに、Shiretokoのままで、Firefoxになっていない!これはまあ動作にはなんの影響もないんですけど、なんとなくやる気減退要素でありまして、むー、という感じです。なんかポリシーがあってのことなんでしょうか。official brandingを有効にして自前でビルドしろって話もありますけども。。。