2019/03/31

オフラインでjupyter使わずにpandasのdataframeをcufflinksでplotly


タイトルが何言ってるかよくわからん。
plotlyを使った条件として

・オフライン
・jupyterなし
・データはpandasのdataframe
・plotlyをcufflinks経由

という感じ。あんまり(需要が)無かったのか簡単すぎるのかなかなか記事が見当たらなかった。


python 3.6 64bit

pandas==0.24.2
plotly==3.7.1
cufflinks==0.14.6



asFigure=True が肝。


また、現在(2019.3.30)、conda でインストールすると、LINKの2.の問題が発生するため、pipでインストールするのがよい。
(直接コードを書き直す方法もあったけど、次々別の問題が表示されるのでそのほうが手っ取り早い)
pipの場合はすでに問題は解消されているのでダウングレードの必要はないです。

2018/05/11

mp3のファイル名にトラック番号を割り当てる(ID3)


未だにCDからmp3に変換した音楽で聴いてます。
名前順にして聴いてるので、ID3タグにあるトラック番号をファイル名の先頭に貼り付けてます。
コードでは、renameフォルダ内に入れたmp3に順次トラック番号「 番号_ 」を付加(リネーム)していってます。

python 2.7 32bit
python 3.6 64bit
Windows 10 64bit



2018/8/22 コード修正

2017/10/23

文字列を辞書型に変換

文字列になっている辞書型想定文字を辞書型に変換する。
dictでキャストしようとすると「dictionary update sequence element #0 has length 1; 1 is required」と出る。

astモジュールを使用で解決した。

Anaconda 3, python 3.6 64bit
Windows 10 64bit

2017/10/21

minecraftをpythonで動かす

今更ながら最近になりマインクラフトにハマってしまった。世界がブロックに感じるようになってしまうという中毒症状がでてる今日このごろ、minecraft をpythonで動かすことができるということで、色々調べました。

丁度この時期、クロスプラットフォームになったようで、マイクラ初心者にとっては、何がなんだか。 サーバーも立てれることができたり、MODやらSpigotやらいっぱい出てきて、混乱してましたが最近ようやくなんとなくわかってきた。

なので自分なりの整理

現在(2017/10/21)は、「マインクラフト(iOS版、Android版、Windows 10版、Gear VR版、Kindle Fire版、Fire TV版、Apple TV版)、いわるゆ bedrock Edition?」と「マインクラフト Java Edition」、それからソニー系のプレステにある「マインクラフト」の3種類ぽい。 知人がやってて、自分もハマったのはプレステ版

pythonを使うことができるのは、マインクラフト Java Edition、あとpythonの使い方次第*1ではPC上で使うマインクラフトBedrockEdition。 マインクラフト Java Editionを買うと、マインクラフト BedrockEditionのwindows10版が無料で手に入るので、PCで使う場合は、JavaEditionを買っとくとお得。

マインクラフト Java Editionは、ノーマルなバージョンとMODという拡張機能を使えるバージョンがある。これは、いろんな人達が作ったMODを使うことで、様々な機能を組み込むことができる。MODを導入するにはMinecraftForgeが必要。 自分でサーバーを立てたい場合は、ノーマルなバージョンは公式サイトからサーバー用をダウンロードする。 自分のサーバーにMODなどの機能をつけるには、Bukkit、あるいは派生版のSpigotを使用する。

pythonを使用できるのは、もともとラズベリーパイ用だったようで、それを利用するみたい。 mcpipyとRaspberryJamModを使うことで、MinecraftForgeを導入したJavaEdtionでも使えるようになる。 自サーバー用(Spigot)では、pluginsにraspberryjuiceを入れ、mcpipyも使うことで機能するようになる。 op権限を自キャラに渡し、コードを実行すると動作する。

上記がわかった上で、導入方法をググればスムーズかなと思います。

Minecraft Building Plannerというソフトがあり、これで設計ができる。一層ごとのブロック位置をPDF形式でも出力されるし、ビューワで実際の感じもわかる優れもの。 ファイルフォーマットもxmlのため、pythonを介せばマインクラフト上にビルドすることが可能。 ただ、本来の自分でコツコツ作る楽しみはだいぶ薄れる。。。サーバー運営するときには、予め作っておくことができるので便利ですね。他にもっと運営者用に良い方法があるのかもしれませんが。。。。


図1 Minecraft Building Planner

今回のコードはminecraft Java Edition, Spigot, raspberryjuiceで動作確認しました。


図2 今回のコード実行結果(色付き羊毛を並べる)

Anaconda 3, python 3.6 64bit
minecraft 1.12.2 Java Edition, Spigot, raspberryjuice
Windows 10 64bit



Bedrock Editionの場合
*1 pythonのキー入力を自動化するモジュールをインポートして、chatのコマンドを1行づつ自動入力するという、だいぶ気長なプログラムで対応。(そういう方法しか思い浮かばなかった。)

追記10/26
Education版ではなくBedrock EditionにMakeCodeが対応したみたいです。 Microsoft、「MakeCode for Minecraft」を発表 ~マイクラで遊びながら楽しく学習
これでJava scriptでコードできるので便利ですね。(ここのブログはpythonのメモなので割愛します。)

LINK
Minecraft Building Planner




参考書






python-docxで日本語のフォントを指定

windows 10 64bit
python 2.7 32bit
python-docx 0.86


日本語のフォント指定

通常のフォント指定では半角英数だけに適用されているので、

doc = docx.Document(filename)

font = doc.styles['Normal'].font
font.name = u'HGP創英角ポップ体'


下記のようにするとうまくいくとのこと。

import docx
from docx.oxml.ns import qn


doc = docx.Document(filename)
r = doc.styles['Normal']._element
r.rPr.rFonts.set(qn('w:eastAsia'), u'HGP創英角ポップ体')



LINK

feature: Font.name_far_east #154

2017/05/24

Thermal printer (serial port)

サーマルプリンタとの接続

選択したの機器は、アマゾンで、安くてUSB接続のほかにCOM接続、Bluetoothでも接続できる製品(POS-5805DD)を選んだ。

機器の接続から印刷までの流れとしてはプリンタをBluetoothで接続して、pythonからシリアル通信で印刷する。
参考にしたサイトはLINK参照。

まず、プリンタとPCとの接続方法(POS-5805DDの場合)
1.バッテリの絶縁シールを取り除き、充電。
2.電源を入れ、PCでBluetooth機器を検索
3.2つ候補がでるので、アイコンの絵がBluetooth Printerになっているほうを選択

4.パスコード(説明書に書いてある)を入力

5.BluetoothのプロパティにあるSPP slaveにチェックを入れる。

もちろん普通に、付属のCDからドライバをインストールし、USBプリンタやBluetoothプリンタとして使える、と思う(試していない)。
python 2.7
pyserial
Windows 10 64bit


LINK

https://ask.warrior.pk/post/13757/2017-04-14
https://github.com/luopio/py-thermal-printer/blob/master/printer.py


Aibecy POS-5805DD USBサーマルプリンタ BTサーマルプリンタ サーマルプリンタ 便携式 レシートチケット POS印刷 iOS Android Windows用

2016/04/17

graphviz and Synthetic Biology Open Language (SBOL)

graphviz + SBOL(Synthetic Biology Open Language)



python 2.7
graphviz
Windows 8.1 64bit



Link

-Caret Dash Caret
  Graphviz + SBOLv1.0
SBOL
python graphviz