Anaconda 学習:PyQt5 版コードできた

2018-04-23 :  PCクリニック
前(2018-04-20)の記事「Anaconda 学習:GUI アプリ開発は PyQt5 で」で、
PyQt4 から、PyQt5 へのコンバージョンポイントが見えてきたので、

3年前(2015-03-15)の記事「Python 学習:GUI アプリ は PyQt4 に決め」で書いた、

出力ファイル=変換結果 を書き直してみた。

以下再掲(要変更部分は赤文字):
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class MainW( QtGui.QWidget ):
s=''; f=''
def __init__( self ):
super( MainW, self ).__init__()
self.initUI()
def initUI( self ):
self.Lbl1=QtGui.QLabel( 'File_Name:', self )
self.Lbl1.move( 10, 10 )
self.Lbl2=QtGui.QLabel( '?', self )
self.Lbl2.move( 75, 10 )
self.Ent1=QtGui.QLineEdit( '', self )
self.Ent1.move( 10, 40 )
self.Ent1.textChanged[str].connect( self.Ent1Changed )
self.Lbl3=QtGui.QLabel( '', self )
self.Lbl3.move( 10, 70 )
self.Btn1=QtGui.QPushButton( 'Go?', self )
self.Btn1.move( 40, 110 )
QtCore.QObject.connect( self.Btn1, QtCore.SIGNAL("clicked()"), self.Btn1Clicked )
self.setWindowTitle( <窓のタイトル> )
self.setGeometry( 200, 200, 600, 400 )
self.setAcceptDrops( True )
def dragEnterEvent( self, e ):
if e.mimeData().hasUrls(): e.accept()
else: e.ignore()
def dropEvent( self, e ):
files = [ unicode( u.toLocalFile() ) for u in e.mimeData().urls() ]
for ff in files:
self.f = ff
self.Lbl2.setText( ff )
self.Lbl2.adjustSize()

def Ent1Changed( self, text ):
self.s = text

def Btn1Clicked( self ):
self.Lbl3.setText( self.s + self.f )
self.Lbl3.adjustSize()

app=QtGui.QApplication( sys.argv )
w=MainW(); w.show()
sys.exit( app.exec_() )
これに対して、赤文字部分を以下の様に変更:
# -*- coding: utf-8 -*-
import sys
from PyQt5 import QtWidgets
class MainW( QtWidgets.QWidget ):
sss=''; f=''
def __init__( self ):
super( MainW, self ).__init__()
self.initUI()
def initUI( self ):
self.Lbl1=QtWidgets.QLabel( 'File_Name:', self )
self.Lbl1.move( 10, 10 )
self.Lbl2=QtWidgets.QLabel( '?', self )
self.Lbl2.move( 75, 10 )
self.Ent1=QtWidgets.QLineEdit( '', self )
self.Ent1.move( 10, 40 )
self.Ent1.textChanged[str].connect( self.Ent1Changed )
self.Lbl3=QtWidgets.QLabel( '', self )
self.Lbl3.move( 10, 70 )
self.Btn1=QtWidgets.QPushButton( 'Go?', self )
self.Btn1.move( 40, 110 )
self.Btn1.clicked.connect( self.Btn1Clicked )
self.setWindowTitle( <窓のタイトル> )
self.setGeometry( 200, 200, 600, 400 )
self.setAcceptDrops( True )
def dragEnterEvent( self, e ):
if e.mimeData().hasUrls(): e.accept()
else: e.ignore()
def dropEvent( self, e ):
files = [ unicode( u.toLocalFile() ) for u in e.mimeData().urls() ]
for ff in files:
self.f = ff
self.Lbl2.setText( ff ) ### ; print ff
self.Lbl2.adjustSize()

def Ent1Changed( self, text ):
self.sss = text

def Btn1Clicked( self ):
self.Lbl3.setText( self.sss + self.f )
self.Lbl3.adjustSize()

app=QtWidgets.QApplication( sys.argv )
w=MainW(); w.show()
sys.exit( app.exec_() )
と云うことで、移植できた。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180314

Anaconda 学習:GUI アプリ開発は PyQt5 で

2018-04-20 :  PCクリニック
前(2018-04-18)の記事「Anaconda 学習:GUI アプリ開発は Tkinter で?」で、
一旦は、決めていた。

がやはり、温故知新で、・・・・・

過去記事:
Python 学習:wxPython で GUI アプリ」2015-03-09 付

Python 学習:PyQt4 で GUI アプリ」2015-03-12 付

Python 学習:GUI アプリ は PyQt4 に決め」2015-03-15 付

の後追い。

取り敢えず、
3年前(2015-07-09)の記事「Python 学習:PyQt4 で GUI アプリ(2)」で
  ・・・・・
  ・・・・・
  以下のようなテキスト・ファイルを入力として、
  “PyQt4”のプロフラムを出力する。
  コンバータを作った。
  /Lbl  Lbl1, 'File_Name:', ( 10, 10 )
/Lbl Lbl2, '?', ( 75, 10 )

/Ent Ent1, '', ( 10, 40 ), Ent1Changed
/Lbl Lbl3, '', ( 10, 70 )
/Btn Btn1, 'Go?', ( 40, 110 ), Btn1Clicked
  ・・・・・
  ・・・・・
と書いているコンバータを引っ張り出してきた。


だが、当時は「PyQt4」だったが、
今の Anaconda に含まれている“pyqt”は「PyQt5」ダ。

「Differences Between PyQt4 and PyQt5」の抄訳 - 明日から本気だす
  PyQt使ってみたかったけど、ver.4とver.5で違いが結構あるぽいので
  Differences Between PyQt4 and PyQt5 - PyQt 5.2.1 Reference Guide
  を抄訳してみた。

  なにか変なところがあったら教えてくだちい。

  PyQt4とPyQt5の違い
  PyQt5とPyQt4は、互換性がありません(が、PyQt4からPyQt5へのアプリ
  ケーションの移植は難しいことではないと言えます)。
  このセクションでは、PyQt5とPyQt4の間の主要な違いについて説明します。

  ・・・・・
  ・・・・・

ということで、若干修正が必要ダ。


それで、
【PythonでGUI】PyQt5 -ドラッグ&ドロップ- - Qiita
のコードで学習した。
(修正点が分かった?)

####################
# QPushButtonを継承
class Button(QPushButton):

def __init__(self, title, parent):
super().__init__(title, parent)
の「super().__init・・・」の部分を、
####################
# QPushButtonを継承
class Button(QPushButton):

def __init__(self, title, parent):
super(Button, self).__init__(title, parent)
の様に変更。
そして、
####################
class Example(QWidget):

def __init__(self):
super().__init__()
の「super().__init__()」の部分を、
####################
class Example(QWidget):

def __init__(self, parent=None ):
super(Example, self).__init__(parent)
の様に変更。

これで、動いた。


そうすると、
昔のコンバータは、この様なソースを生成できるように修正する。

最初の
from PyQt5.QtWidgets import (QPushButton, QWidget, 
QLineEdit, QApplication)
の部分も修正が必要だナ。


更なる学習が必要ダ。


本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180312

Anaconda 学習:GUI アプリ開発は Tkinter で?

2018-04-18 :  PCクリニック
先日(2018-04-11)の記事「kivy 学習:Kv ファイルを別途用意しない方法」で、

更なる、学習をしていたが、・・・・・


どうも、「kivy」についてはまだまだ学習が必要ダ。

なので、
昔の「Tkinter」に戻ってみた。
参照記事:「Tkinter:ドラッグ&ドロップ対応法


しかし、問題が1つあった。

今後使う Python は、Anaconda で しかも 64bit 版


これは簡単に、行けるのか?

「Python GUI ドラッグ&ドロップ」検索で、
1つ見つけた:
TkinterでDnDを実装するには(64bit Window版)

  TkinterでエクスプローラからDnDでファイルを受け取るアプリを作成
  してみようと思いました。

  参考サイトの内容を元にコードを作成してみましたが、残念なことに
  64bit Windows 10 ではうまく動作しません。

  Python+TkでD&D -MasaHeroの日記より
  http://d.hatena.ne.jp/MasaHero/20111201/p1

  ctypesを使って、WindowsのDDLを直接操作しています。
  32bit Windows7 にて、python 2.7 と 3.4で動作を確認しています。

  これを64bit Windowsでも動作させるにはどのように修正すればよいでしょうか?


これで学習して、
<紙>流コードを作った:
# -*- coding: utf-8 -*-

import Tkinter as tk
import ctypes, sys
from ctypes import c_long, WINFUNCTYPE
from ctypes.wintypes import HWND, UINT, WPARAM, LPARAM

WM_DROPFILES = 0x0233
GWL_WNDPROC = -4
FS_ENCODING = sys.getfilesystemencoding()
DragAcceptFiles = ctypes.windll.shell32.DragAcceptFiles
DragQueryFile = ctypes.windll.shell32.DragQueryFile
DragQueryFile.argtypes = [ ctypes.c_void_p, UINT, ctypes.c_void_p, UINT ]
DragFinish = ctypes.windll.shell32.DragFinish
DragFinish.argtypes = [ ctypes.c_void_p ]
CallWindowProc = ctypes.windll.user32.CallWindowProcW
CallWindowProc.argtypes = [ ctypes.c_void_p, HWND , UINT, WPARAM, LPARAM ]
try: SetWindowLong = ctypes.windll.user32.SetWindowLongPtrW
except AttributeError: SetWindowLong = ctypes.windll.user32.SetWindowLongW

class TkApp(tk.Frame):
dnd_interval = 600

def __init__(self, *args, **kargs):
tk.Frame.__init__(self, *args, **kargs)
self.createwidget()
self.dropnames = []
win = args[0] if args else self._root()
win = self.tw

def drop_check():
if self.dropnames:
fns = self.dropnames
self.dropnames = []
self.dnd_notify(fns)
win.after(self.dnd_interval, drop_check)

@WINFUNCTYPE(c_long, HWND, UINT, WPARAM, LPARAM)
def replace_win_proc(hwnd, msg, wp, lp):
u"""D&D用のコールバック
ファイルのドラッグアンドドロップイベント(WM_DROPFILES)を検出して、
ドロップされたファイル名を保持する。
ここでウィンドウ(tk)を使用するとハングアップするのでデータ保存だけ行う。
"""
if msg == WM_DROPFILES:
nf = DragQueryFile(wp, -1, None, 0)
buf = ctypes.c_buffer(260)
fns = [ buf.value.decode(FS_ENCODING) for nn in range(nf) \
if DragQueryFile(wp, nn , buf, ctypes.sizeof(buf)) ]
DragFinish(wp)
self.dropnames.extend(fns)
print("%s dnd_notify: %s" % (self, hwnd))
return CallWindowProc(self.org_proc, hwnd, msg, wp, lp)

def dnd_setup():
"Windowsのイベント処理のフックを定義する"
hwnd = win.winfo_id()
DragAcceptFiles(hwnd, True)

self.win_proc = replace_win_proc
self.org_proc = SetWindowLong(hwnd, GWL_WNDPROC, self.win_proc)

win.after_idle(drop_check)
print("%s dnd_setup: %s,%s" % (self, hwnd, self.org_proc))

self.pack(fill='both', expand=1)
win.after_idle(dnd_setup)

def createwidget(self):
tw = tk.Text(self, width=30,height=16)
tw.pack(fill='both', expand=1)
self.tw = tw

def dnd_notify(self, filenames):
for nn in filenames:
self.tw.insert('end',"%s\n" % nn)

if __name__ == "__main__":
a = TkApp()
if 0: TkApp(tk.Toplevel()) # 複数ウィンドウに対応
a.mainloop()
これで動いた。


よく分からないが、
これで行こうかナ?



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180311

Anaconda 学習:numpy.polyfit は使わない?

2018-04-16 :  PCクリニック
先月(2018-03-02)の記事「Anaconda 学習:Fitting なら curve_fit」で、

  ・・・・・
  ・・・・・
  Numpypolyfit では、
  一部の係数を固定(多分ゼロに)することが出来ない?
  ・・・・・
  ・・・・・

と書いている。

しかし、なんとか成らないのか?・・・


と云うことで、(若干)学習してみた。

Constrained Polynomial Regression
に辿り着いた。

でも、これは“MATLAB”のお話しなので、
「Constrained Polynomial Regression」で検索してみた。


“Stack Overflow”の
How to do a polynomial fit with fixed points
が見つかったが、
これは、Constrainedと云っても、係数の制約(固定値)ではなくて、
通過点の指定(指定点を通過する(曲)線を求める)と云うものですね。


そこで、
「Constrained Polynomial Regression Python」として検索。

“Stack Overflow”の
Constrained Linear Regression in Python
があった。

これは期待できる。


回答[8]はリンク切れか、scipy.optimize.nnls

回答[9]は、scikit-learn

回答[3]は、scipy.optimize.leastsq with bound constraints


どうも、
係数に関する重み付けではなくて、
Y値(観測値)に対する重み付けの様な?

やはり、ダメ


前回記事の結論通り:

  Fitting なら curve_fit で決まりだナ。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180309

Anaconda 学習:Gensim って何?

2018-04-13 :  PCクリニック
ひょんなことから、
“情報処理学会 研究報告”の、
「人工知能技術を用いた情報処理学会・・・」
を見ていたら、

  Python の Gensim = Doc2Vec
とか、
  Word2Vec
とか、
  MeCab ( 単語分割 )
  TensorBoard ( ビジュアライザ )

とかと云った言葉が載っていた。


些か気になったので、調べてみた。


「Python Gensim」検索で、

scikit-learnとgensimでニュース記事を分類する - Qiita
が見つかった。

記事の中には、

  ・・・・・
  ・・・・・
  ということは、特徴語を決定する必要がある。
  このあたりは、Gensimというライブラリが良いそうなので、それ使います。

  あと、日本語文章の特徴語を抽出するということは、
  その前に形態素解析をする必要がある。これはMeCabを使えば良いでしょう。

  手順をまとめると、
   1. 記事からMeCabで単語だけ切り出して記事を単語リストに変換
   2. 単語リスト群から、Gensimで特徴語の辞書を定義
   3. BoWの要領で各文章に特徴語が何個あるかカウントして特徴ベクトル作る
   4. この特徴ベクトルで学習。
   5. 未知の文章も、3の方法で特徴ベクトルを作れば、
    分類器にかけてカテゴリを当てられるはず

  という感じだと思います。

と載っており、

これも気になった用語「ランダムフォレスト」も載っていた。


この“Gensim”はデフォルトでは入っていないが、
Conda Cloud には、
anaconda / packages / gensim 3.4.0
があった。



それから、
「ランダムフォレスト」検索では、

決定木とランダムフォレスト - Qiita
が見つかる。


この記事のコメントに、

  Udemyで「実践Pythonデータサイエンス」を公開している辻と申します。
  ・・・・・
  ・・・・・

とある。


序でに、
「実践Pythonデータサイエンス」検索では、

Udemyの「実践 Python データサイエンス」を受けてみた - Qiita
が見つかる。

この記事の中では、

  データの可視化
  ・Seabornの利用
   Seabornは非常にすぐれたデータの可視化用ライブラリで、
   色を簡単に変えることができるという特徴もあります。
   ヒストグラム、カーネル密度推定(簡単に言うとなめらかなヒストグラム)
   ボックスプロット(箱ひげ図)、ヴァイオリンプロット、回帰直線
   などを表示させることができます。

と云った記述がある。


さらに、
「Seaborn」検索では、

pythonで美しいグラフ描画 - seabornを使えば・・・
が見つかる。

  ・・・・・
  ・・・・・
  この記事ではMatplotlibの機能をより美しく、またより簡単に実現するための
  ラッパー的存在である、「Seaborn」の使い方を取り上げます。

と云うこと。


Pandas、 Seaborn、 ggplot、 Bokeh、 pygal、 Plotly

の6つについての記事から、

Matplotlib と、Seaborn との比較?


あっちこっちと、手を広げ過ぎたようで、
取り留めの無いことになってしまった。


本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180302

kivy 学習:Kv ファイルを別途用意しない方法

2018-04-11 :  PCクリニック
先日(2018-03-23)の記事「Anaconda 学習:kivy 導入」では、
メインの“kivy_GUI_sample.py”ファイルと、
レイアウトを定義した、Kvファイル:test.kv ファイル
の2つのファイルが必要だった。

これを、test.kv ファイルの中身を移して、
メインの“kivy_GUI_sample.py”ファイル1つにしたい。

あれこれ学習して、分かったのは、

  class TextWidget(Widget):

を定義する前に、

1) from kivy.lang import Builder

  を定義する。


2) それに続いて、

  Builder.load_string( ''' ~~~ ''' ) を追加する。


ここで、 ~~~ 部分は、
「test.kv」から1行目(TextWidget:)を除いたもの。


と、
これで動いた様に見えていたが、・・・・・


先日(2018-04-09)の「Anaconda 32 ビット版導入」で書いた
時に、この1ファイルだけで確認しようとしたら、

  Kv ファイルが見つからない

と云ったようなエラーが発生???



さんざん悩んだ挙げ句、原因が判明した。

3) 最終段の“class TestApp(App):”の中身も変更が必要だった。

   def build(self):
self.title = 'greeting'
return TextWidget()
の様に。



結果、1ファイル化したコードは:
# -*- coding: utf-8 -*-

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import StringProperty, ListProperty

from kivy.lang import Builder

Builder.load_string('''
<TextWidget>:
BoxLayout:
orientation: 'vertical'
size: root.size

# ラベル
Label:
size_hint_y: 0.7
id: label1
font_size: 68
text: root.text
color: root.color

BoxLayout:
size_hint_y: 0.3
padding: 20,30,20, 10
Button:
id: button1
text: "morning"
font_size: 68
on_press: root.buttonClicked() # ボタンをクリックした時

Button:
id: button2
text: "day"
font_size: 68
on_press: root.buttonClicked2() # ボタンをクリックした時

Button:
id: button3
text: "night"
font_size: 68
on_press: root.buttonClicked3() # ボタンをクリックした時
''')

class TextWidget(Widget):
text = StringProperty()
color = ListProperty([1,1,1,1])

def __init__(self, **kwargs):
super(TextWidget, self).__init__(**kwargs)
self.text = 'start'

def buttonClicked(self):
self.text = 'Good morning'
self.color = [1, 0, 0 , 1]

def buttonClicked2(self):
self.text = 'Hello'
self.color = [0, 1, 0 , 1 ]

def buttonClicked3(self):
self.text = 'Good evening'
self.color = [0, 0, 1 , 1 ]

class TestApp(App):
def build(self):
self.title = 'greeting'
return TextWidget()

TestApp().run()
でした。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180222,0310

Anaconda 32 ビット版導入

2018-04-09 :  PCクリニック
手元にあるノートPC:Windwos 10 32-bit 版
に、Anaconda を導入することにした。

今年初め(2018-01-05)の記事「Python は、Anaconda x64 で
と同様に、

  Anaconda
  即ち、「Anaconda 5.0.1 For Windows Installer」
  の、
    Python 2.7 version
  から、
    32-Bit Graphical Installer (420 MB)
  をダウンロードした。

  つまり、
  「Anaconda2-5.0.1-Windows-x86.exe」 2017-10-15 付


そして、
先日(2018-04-04)纏めた記事「Anaconda セットアップ手順:まとめ
の手順に沿って、

・ レジストリへの登録

及び、追加モジュールのインストール。

OpenCV3

Pydicom

Plotly

visvis

easyGUI

ここまでで、
初期インストールでは、237モジュールだったが、
243に増えている。


ここで、
conda では、kivy の Win-32 版が見つけられなかった。


なので、
pip を使ってインストール。

(1)pip の upgrade:これで、1モジュール追加

(2)kivy の dependency のインストール:4モジュール追加

(3)そして、kivy のインストール:2モジュール追加


結果、250 モジュールになった。


此処まで来て、kivy が動かない???


探し当てた:
Kivy does not detect OpenGL 2.0

これの回答[11]
にあるコードの、
# add the following 2 lines to solve OpenGL 2.0 bug
from kivy import Config
Config.set('graphics', 'multisamples', '0')
この2行を追加したら、動いた。


何故だか、OpenGL 2.0 のバグに嵌った?


本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180308

Anaconda 学習:numpy.std 標準偏差算出

2018-04-06 :  PCクリニック
標準偏差算出関数をド忘れして、
SciPy.orgの「SciPy.org
から、
SciPy library
を探しまくって、
Statistical functions (scipy.stats)」の、
scipy.stats.tstd
しか無いと思い込んで、
一応コーディングは完了していた。


だが、

  Compute the trimmed sample standard deviation.

===

  トリムされた標本標準偏差を計算します。


との記述が、些か気になっていた。


----------


ふと、気が付いた。


NumPy」に有るのではないか?

ありましたネ。


ドキュメント:「numpy.std」では、

  Compute the standard deviation along the specified axis.

===

  指定された軸に沿った標準偏差を計算します。


とある。


これで、十分でした。


オソマツ。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180227,0304

Anaconda セットアップ手順:まとめ

2018-04-04 :  PCクリニック
今年初め(2018-01-05)の記事「Python は、Anaconda x64 で」で、
  ・・・・・
  ・・・・・
  Anaconda
  即ち、「Anaconda 5.0.1 For Windows Installer」
  の、
    Python 2.7 version
  から、
    64-Bit Graphical Installer (500 MB)
  をダウンロードした。
  ・・・・・
  ・・・・・
と書いた通り、Anaconda 一本。


そこで、
此までの導入手順をまとめた。


最初は、
続く記事「Anaconda2_x64 本格導入」で書いているが、

(1)「Anaconda2-5.0.1-Windows-x86_64.exe」 2017-10-15 付 499MB
   の、インストール。


(2)レジストリへの登録:
   以下の様な「Regist_Anaconda_MR8000.reg」を作って、実行。
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.py]
@="Python.File"
"Content Type"="text/plain"


[HKEY_CLASSES_ROOT\Python.File]
@="Python File"

[HKEY_CLASSES_ROOT\Python.File\shell]

[HKEY_CLASSES_ROOT\Python.File\shell\open]

[HKEY_CLASSES_ROOT\Python.File\shell\open\command]
@="\"D:\\TOOL\\Anaconda2\\python.exe\" \"%1\" %*"

[HKEY_CLASSES_ROOT\Python.File\shellex]

[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"
ここで、
(1)のインストール先は D:/TOOL/Anaconda2


(3)conda でパッケージを2つ追加:
   ・menpo / packages / opencv3 3.2.0 から、
     DOS プロンプトで:
      conda install -c menpo opencv3
   ・clinicalgraphics / packages / pydicom 1.0.0a1 から、
     DOS プロンプトで:
      conda install -c clinicalgraphics pydicom


(4)その後のパッケージ追加:Plotly
   Anaconda 学習:Plotly
   ・anaconda / packages / plotly 2.2.2から、
     DOS プロンプトで:
      conda install -c anaconda plotly


(5)Pillowのダウングレード:
   Anaconda 学習:“Pillow/Image”使えた!?
   ・dsdale24 / packages / pillow 2.6.0から、
     DOS プロンプトで:
      conda install -c dsdale24 pillow


(6)kivyパッケージ追加:
   Anaconda 学習:kivy 導入
   ・krisvanneste / packages / kivy 1.8.0から、
     DOS プロンプトで:
      conda install -c krisvanneste kivy


(7)visvisパッケージ追加:
   Anaconda 学習:visvis 導入
   ・conda-forge / packages / visvis 1.10.0から、
     DOS プロンプトで:
      conda install -c conda-forge visvis


(8)easyGUIパッケージ追加:
   Anaconda 学習:EasyGUI 導入
   ・achennu / packages / easygui 0.97.4から、
     DOS プロンプトで:
      conda install -c achennu easygui


今日現在では、以上の状態。


初期インストールでは、232パッケージ/モジュールだったが、
現状では、248に増えている。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180213

Anaconda 学習:複数変数一括代入(list、tuple)

2018-04-02 :  PCクリニック

複数の変数へ1文で代入する方法について、纏めてみた。


先ずは、何はともあれ、

テスト実行:
# -*- coding: utf-8 -*- 

tupleA = 7, 8, 9
tupleB = ( 7, 8, 9 )
listC = [ 7, 8, 9 ]

# 以上の様に定義しておいて、・・・・・


# 以下の代入文

Ax, Ay, Az = tupleA
Bx, By, Bz = tupleB
Cx, Cy, Cz = listC

( ax, ay, az ) = tupleA
( bx, by, bz ) = tupleB
( cx, cy, cz ) = listC

[ Xx, Xy, Xz ] = tupleA
[ Yx, Yy, Yz ] = tupleB
[ Zx, Zy, Zz ] = listC

# で、結果は? -----------

print( Ax, Ay, Az )
print( Bx, By, Bz )
print( Cx, Cy, Cz )

print( ax, ay, az )
print( bx, by, bz )
print( cx, cy, cz )

print( Xx, Xy, Xz )
print( Yx, Yy, Yz )
print( Zx, Zy, Zz )


どれでも、結果は一緒ですね。


で、改めてドキュメントを読み直してみた。

Python 2.7.14 ドキュメント」の、
チュートリアル」の、
5. データ構造

5.1. リスト型についてもう少し
では、

  listA = [ 7, 8, 9 ];  listA[0] → 7

と、ゼロオリジンであること。


そして、
本題の、
5.3. タプルとシーケンス

  リストや文字列には、…。これらは シーケンス(sequence)データ型の例です。
  標準のシーケンス型はもう一つあります: タプル(tuple)型です。

  タプルはコンマで区切られたいくつかの値からなります。
  例えば以下のように書きます:

  tupleB = 7, 8, 9;  tupleB[0] → 7

  タプルは不変型 (immutable) で、複数の型の要素からなることもあり、…
  リストは変更可能 (mutable) で、要素はたいてい
  同じ型のオブジェクトであり、…

  タプルを書くときは必ずしも丸括弧で囲まなくてもいいですが、・・・

  tupleB = ( 7, 8, 9 )

  でもいい

  ・・・・・
  ・・・・・


そうだったんダ。

  丸括弧で囲まなくてもいい

と云うことダ。


つまり、
最初に書いた tupleA と、tupleB は同じもの。



因みに、
Python 標準ライブラリ」の、
5.6. シーケンス型 - str, unicode, list, tuple, ・・・
では、
  シーケンス型には 7 つあります: 文字列、Unicode 文字列、
  リスト、タプル、バイト配列 (bytearray)、バッファ、
  そして xrange オブジェクトです。

  ・・・・・
  ・・・・・


と云うことでした。



更に、序でに、

  a = b = c = 3
  print( a, b, c )

だとすると、・・・・・

a、b、c 共に代入されている。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180218

“波乗野郎”代替は“HTTrack”だった

2018-03-30 :  PCクリニック
先月(2018-02-21)の記事:
調査結果メモ:“波乗野郎”代替“CompleteGetter”
に従って、
常用マシンに、インストールした。


CompleteGetter」サイトから、

  CompleteGetter 6.42

即ち、
「ComGetter64.zip」 755KB  2013.03.09 付


早速、
展開して、(テスト)実行。

ん? 1階層のみ???

操作方法が良く分からない?

ヤメだ。



代替は?

ウェブサイトを丸ごと保存するHTTrack - Qiita」
はどうか?

  動機

  Ansibleのモジュールごとのドキュメントが欲しい。
  けどダウンロードできる形では見当たらないようだ。
  → ではサイトごとローカルに取ってくれば良いじゃないか。
  → 過去にはIrvineなどがあった(・・・)が今はもっと良いのがあるはず
  → それでみつけたのが、HTTrack

  HTTrackとはなにか

  サイトごとまるごとダウンロードして、ローカルで参照できます。
  オンラインにしか無いリファレンスなどを
  ネットのないところでも見られるわけです。

  ・・・・・
  ・・・・・


正に、<紙>の思惑と一緒。


同記事の続く部分:

  ダウンロード&インストール

  こちらから自分の目的にかなったものをダウンロード。→ダウンロードサイト

即ち、
Download HTTrack Website Copier 3.49-2
から、

 We recommend:
 Windows (from Windows Vista to ・・・) 64-bit installer version
 WinHTTrack (also included: command line version)

 「httrack_x64-3.49.2.exe」 4.30MB  01/Apr/2017


これ、(<紙>の)例によって、

D:/TOOL/WinHTTrack/ に、インストールした。


ダウンロードする対象物の格納先は、
E:/DOC/HTTrack/ とした。


早速、(テスト兼)実行。

ダウンロード対象は、
いつもお世話に成っている、“とほほのWWW入門”の、
“■ プログラミング言語”の“Python


HTTrack実行手順は、上記“Qiita”サイトで学習した。


プロジェクト名は、Python_tohoho とし、
Project categoryは、Python_Document とした。
そして、
基準パスは、E:\DOC\HTTrack ですね。


「次へ」行って、
Webアドレス(URL)に、

http://www.tohoho-web.com/python/index.html

そして「次へ」で“実行”。


できた。


これは、下へは全ての階層をダウンロードするが、
左上にある“トップ”リンクはダウンロード対象外ですか。


これが、(<紙>にとって)“波乗野郎”の代替ダ。

おおいに使わせて頂こう。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180222

Anaconda 学習:EasyGUI 導入

2018-03-28 :  PCクリニック
以前(2018-03-21)の記事:
Anaconda 学習:“EasyGUI”very simple, very easy GUI モジュール
でメモっていた、EasyGUI を導入することにした。


“Anaconda Cloud”では、
以前の記事で書いた、
 「achennu / packages / easygui 0.97.4

じゃなくて、

 3番目の「idigbio / easygui 0.98.1.1
が新しい。

と云うことで、
これで行こう!

  conda install -c idigbio easygui

とやってみたが、

  easygui -> python 3.5*

となって、ダメ。

また、やってしまった。
新しければイイと云うものでは無かった。


最初の通りで。

  conda install -c achennu easygui


これで行けた。

・ easygui 0.97.4

1つだけ追加された。


それで、テスト実行。


例題は、以前の記事でメモしておいた、
EasyGui - easygui 0.97 (2014-12-20) documentation

「buttonbox - tutorial」を拝借:
# --------------------- easyGUI_sample.py
# -*- coding: utf-8 -*-

import easygui as eg

message = 'What does she say?'
title = 'TITLE'
if eg.boolbox( message, title, [ 'She loves me', 'She loves me not' ] ):
eg.msgbox( 'Flowers' )
else:
pass
行けた。


これで、
本格的に EasyGUI の学習が出来る。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180212

Anaconda 学習:visvis 導入

2018-03-26 :  PCクリニック
以前(2018-03-19)の記事:
Anaconda 学習:“visvis”オブジェクト指向視覚化ツール」でメモっていた、
visvis を導入することにした。


“Anaconda Cloud”では、
以前の記事で書いた、
 「conda-forge / packages / visvis 1.10.0」から、

  conda install -c conda-forge visvis

コマンドで(結果的に)行けた。


でも、途中で・・・・・

通信エラーとか、バッチファイルが見つからないとか
いろいろトラブって、結局5回も実行した。


・ visvis-1.10.0
・ pyopengl-3.1.1a1

の2つが追加された。


それで、テスト実行。


例題は、以前の記事でメモしておいた、
visvis
の上に並んでいる「Wiki」から

右の Main の5番目 Examples の、

Plotting の1番目 plotting

つまり、
example_plotting - almarklein/visvis」のコードを拝借。:
# --------------------- visvis_plot_sample.py
# -*- coding: utf-8 -*-

import visvis as vv
app = vv.use()

f = vv.clf()
a = vv.cla()

vv.plot([12,34,21,38], lc='b', ls=':',mc='b', mw=7, lw=2, ms='s', mec='r')
vv.plot([1,3,4],[33,47,12], lc='r', mc='r', ms='.')
vv.plot([20,24,45,21], lc='g', ls='--', mc='g', mw=12, lw=3, ms='')
vv.plot([35,14,40,31], lc='k', ls='-.', mc='g', mw=12, lw=3, ms='*')
# If the star is not visible, your OpenGl system does not support point sprites

a = vv.gca()
a.legend = 'line 1', 'line 2', 'line 3'
a.axis.showGrid = 1

a.axis.xlabel = 'measurement number'
a.axis.ylabel = 'some quantity [unit]'
vv.title('An example of \b{plotting}')

app.Run()
行けますね。(当然?)


これで、
本格的に visvis の学習が出来る。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180212

Anaconda 学習:kivy 導入

2018-03-23 :  PCクリニック
以前(2018-03-16)の記事「Anaconda 学習:“kivy”GUI ライブラリ」でメモっていた、
kivy を導入することにした。


“Anaconda Cloud”では、
以前の記事で書いた、
 「krisvanneste / packages / kivy 1.8.0」から、

  conda install -c krisvanneste kivy

このコマンドで行けた。

・ kivy-1.8.0
・ pygame-1.9.2a0

の2つが追加された。


それで、テスト実行。


例題は、以前の記事でメモしていた、
“Qiita”の
Python Kivyの使い方① ~Kv Languageの基本~

  11.複数のボタンを追加した場合
のコードを拝借。

# --------------------- kivy_GUI_sample.py
# -*- coding: utf-8 -*-

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import StringProperty, ListProperty

class TextWidget(Widget):
text = StringProperty()
color = ListProperty([1,1,1,1])

def __init__(self, **kwargs):
super(TextWidget, self).__init__(**kwargs)
self.text = 'start'

def buttonClicked(self):
self.text = 'Good morning'
self.color = [1, 0, 0 , 1]

def buttonClicked2(self):
self.text = 'Hello'
self.color = [0, 1, 0 , 1 ]

def buttonClicked3(self):
self.text = 'Good evening'
self.color = [0, 0, 1 , 1 ]

class TestApp(App):
def __init__(self, **kwargs):
super(TestApp, self).__init__(**kwargs)
self.title = 'greeting'

TestApp().run()
これがメインプログラムで、
以下が、Kvファイル:test.kv
# -*- coding: utf-8 -*-

TextWidget:
:
BoxLayout:
orientation: 'vertical'
size: root.size

# ラベル
Label:
size_hint_y: 0.7
id: label1
font_size: 68
text: root.text
color: root.color

BoxLayout:
size_hint_y: 0.3
padding: 20,30,20, 10
Button:
id: button1
text: "morning"
font_size: 68
on_press: root.buttonClicked() # ボタンをクリックした時

Button:
id: button2
text: "day"
font_size: 68
on_press: root.buttonClicked2() # ボタンをクリックした時

Button:
id: button3
text: "night"
font_size: 68
on_press: root.buttonClicked3() # ボタンをクリックした時
と云うことで、OK。


これで、
本格的に kivy の学習が出来る。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180212

Anaconda 学習:“EasyGUI”very simple, very easy GUI モジュール

2018-03-21 :  PCクリニック
前(2018-03-19)の記事「Anaconda 学習:“visvis”オブジェクト指向視覚化ツール」で、

  ・・・・・
  ・・・・・
  上(HOME/ホーム)に上がって、
  3番目の「Python Samples
  に飛び
  ・・・・・
  ・・・・・

と書いているが、

この Python Samples ページで見つけたこと。


一番下にある、
  PythonRecipe
  http://lightson.dip.jp/zope/ZWiki/PythonRecipe

行ってみた。

この中の、半分よりちょっと下に、

  GUI
  ・ 500:pythonでGUIを使う

があるので、
飛んでみた。

6行からなるコード

の下に、

  EasyGui を用いれば、初心者でもGUIを実現できます


とある。


なので、飛んでみた:

EasyGuiを用いたPythonスクリプトの簡易GUI化 (1/3)

   Pythonスクリプトにグラフィカルインタフェースを実装する場合の
  選択肢としては、多少煩雑になるのは覚悟の上でTkinterなどの
  GUIプログラミングキットを用いるのが一般的だろう。
   ただしこの手法を実践するにはかなり高度なコーディングスキルが
  求められるため、初心者レベルのPythonプログラマーにとっては
  ハードルが高いというのが実状である。
   こうした面倒なコーディングを経ることなく、Pythonスクリプトへの
  簡易的なGUI機能の組み込みを可能にしてくれるのが、
  本稿で紹介するEasyGuiというモジュールだ。
  実際EasyGuiを利用した場合、数行のコードを追加するだけで
  Pythonスクリプトをグラフィカル化できてしまうのである。
  ・・・・・
  ・・・・・

ですね。


文中の“EasyGui”リンク先は

  このサイトにアクセスできません
  easygui.sourceforge.net からの応答時間が長すぎます。

となることもあったが、

EasyGui - easygui 0.97 (2014-12-20) documentation

でした。


“anaconda cloud” では、

achennu / packages / easygui 0.97.4」に、“win-64”版がある。



でも、
上記 サイトの「Download」ボタンから、
「easygui-0.97.zip」2014/12/21 付
をダウンロードして、
中にある「easygui.py」1つを
持ってくると十分ダ。

“easygui 0.97 (2014-12-20) documentation”
には、


  EasyGUI is a module for very simple,
   very easy GUI programming in Python.

  EasyGUI is different from other GUI generators in that
   EasyGUI is NOT event-driven.

  Instead, all GUI interactions are invoked by simple function calls.

  EasyGui provides an easy-to-use interface for
   simple GUI interaction with a user.

  It does not require the programmer to know anything about tkinter,
   frames, widgets, callbacks or lambda.

  EasyGUI runs on Python 2 and 3, and does not have any dependencies.

===

  EasyGUIはPythonで非常に簡単で非常に簡単なGUIプログラミング
   のためのモジュールです。

  EasyGUIは他のGUIジェネレータとは異なり、
   EasyGUIはイベント駆動型ではありません。

  代わりに、すべてのGUIのやりとりは、
   単純な関数呼び出しによって呼び出されます。

  EasyGuiは、ユーザーとの簡単なGUI対話のための使いやすい
   インターフェースを提供します。

  プログラマーは、tkinter、フレーム、ウィジェット、コールバック
   またはラムダについて何も知る必要はありません。

  EasyGUIはPython 2と3で動作し、依存関係はありません。

とある。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180111

Anaconda 学習:“visvis”オブジェクト指向視覚化ツール

2018-03-19 :  PCクリニック
前(2018-03-16)の記事「Anaconda 学習:“kivy”GUI ライブラリ」で書いた、
Python Kivyの使い方① ~Kv Languageの基本~」を
更に読み進めていたら、


  ・・・・・
  ・・・・・

  ※ Kvファイルの予約語から引用

  ・・・・・
  ・・・・・

なる記述があり、
飛んでみた。

“TB-code”の“Python Samples”の、
Kvファイルの予約語」ですね。

このサイト面白そうなので、

上(HOME/ホーム)に上がって、
3番目の「Python Samples
に飛び

  ビルド(実行ファイル化)
  ・ py2exe

に飛び:“Windowsアプリ化 py2exe”

そして、
ここの最後:

  py2exeでパッケージングした時のライブラリのサイズまとめ。
  scikit-imageがやたらコンパクトな件

  http://app.f.m-cocolog.jp/t/typecast/1147997/1169291/96103974


気になって、飛んでみた。

YATTSUKE BLOG 2014年9月16日 (火)
ですね。

今回は、これを学習???

要するに、

matplotlib だと、結果は巨大になる。という件

<紙>の場合、
使えなかった:
Anaconda 学習:py2exe はどうか?

ですが、

この記事の最後に、

  ふーむ軽いプロットライブラリはないものか。
  ちろっと調べたらvivisというのが面白そう。

とあった。

尚、
vivis は、間違いで、visvis ですネ。


これ visvis は、
“anaconda cloud”では、
conda-forge / packages / visvis 1.10.0
ですか。


導入してみようかナ。


でも、よく見ると、
visvis には、

  Status

  Visvis has been relatively stable for several years.
  I am still maintaining it, but do not plan on making any major changes.
  Visvis will not make use of modern OpenGL,
   and will not work in the browser.
  It's API might be a bit idosyncratic (e.g. methods are UpperCamelCase)
   because I started working on Visvis before I knew about PEP8.

  See Vispy for a similar (but more modern) visualization library.

===

  状態

  Visvisは数年間比較的安定しています。
  私はまだそれを維持していますが、大きな変更を加えるつもりはありません。
  Visvisは最新のOpenGLを使用せず、
   ブラウザでは動作しません。
  私がPEP8について知る前に、Visvisで作業を開始したため、
   APIが多少非同期的(例:メソッドがUpperCamelCase)になることがあります。

  同様の(ただし、より現代的な)可視化ライブラリについては、
   Vispy を参照してください。


とあるが???



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180211

Anaconda 学習:“kivy”GUI ライブラリ

2018-03-16 :  PCクリニック
ふと、
「Python GUI」と検索したら、・・・・・


“株式会社キャパ CAPA,Inc”の、
Python、GUIライブラリの紹介」が見つかった。

これの1番目: kivy
では、

  おそらくPython界隈で今最も熱いGUIライブラリです。
  特徴は、Windows、Mac、Linuxだけでなく、
  Android、iOSでも動作する点です。
  現在はRaspberry Piもサポートされました。

  既にスマホアプリが多数作られ、ゲームの作成にも向いています。
  更新頻度も高く活発で、Githubのスター数(4519)からも、人気な点が伺えます。

  kivyは日本語書籍が2冊出ており、最近は話題になっているため
  ブログ等で情報も得やすいかと思います。

  ダウンロード・インストール
  https://kivy.org/#download

とある。

リンクをクリックすると、

  The current version is 1.10.0, released on May 7st, 2017.
  Read the Changelog.

  Installation instructions can be found here.

  ・・・・・
  ・・・・・

・ -・ -・・


最初の検索結果の続き:

“ハジプロ!”の、
… PythonのGUIライブラリを比較10選 おすすめはどれ?」では、

1番目が TkInter

そして、
2番目に kivy

  Kivy: Cross-platform Python Framework for NUI Development

  kivyは、今、最も人気のある(2017年9月現在)GUIライブラリです。

  ・ Windows、Mac、Linuxだけでなく、Android、iOSでも動作
  ・ Raspberry Piのサポート
  ・ スマホアプリやゲームの作成にも向いている
  ・ OpenGL(3Dグラフィックスを扱うライブラリ)を使用

があった。

・ -・ -・・


「Anaconda Cloud」では、
krisvanneste / kivy 1.8.0
ですか?

win-64 v1.8.0
ですが、
   Last upload: 3 years and 4 days ago
と些か古い?

・ -・ -・・


使ってみたいが、・・・・・


「Kivy」検索では、

“Qiita”の
Python Kivyの使い方① ~Kv Languageの基本~
がある。

  PythonのGUIライブラリーを作るKivy(https://kivy.org/#home) ですが、
  日本では知名度はさほどではありません。
  理由として一番多いのはインストールしたのは良いが
  日本語でまとまった情報があまりなく、
  どう使用していいかわからないという声をよく聞きます。
  またKivyにはレイアウトを記述する際にPythonによるコード入力とは
  別にKv Languageと呼ばれる、CSSに似たKivy独時の言語を用いて
  レイアウトを作成できますが、情報が少なく慣れるまで時間がかかります。
  ここではKv Languageを用いた簡単なプログラムを紹介して
  Kv Languageの基本的な使い方を紹介します。


これを手始めに、要学習でしょうか?


若干読み進めてみた。


  [Note] Kivyの座標系について

では、

  今回の並びをみているとわかるのですが、
  Kivyの原点座標は左下になります。
  これがKivyのとっつきにくい点の一つになっています。
  慣れると問題がないのですが、多くのGUIのソフトと違い
  Kivyは原点が左下にあると覚えておいてください。

だそうだ。



導入を検討しよう。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180211

Anaconda 学習:Plotly で、3D Surface Plot

2018-03-14 :  PCクリニック
前回(2018-03-12)の記事「Anaconda 学習:Plotly で、3D Scatter Plot」では、
だったので、
今回はを学習。

2年前(2016-05-24)の記事「plotly.js : Surface Plot」に
相当するグラフ作成プログラム。

参照ドキュメントは、
3D Surface Plots in Python

ここにあるコードに対して、

1)「import plotly.plotly as py」は、
  「import plotly.offline as pl」に

2)「import pandas as pd」は、
  「import numpy as np」に

変更。

で、出来たコードは:
# -*- coding: utf-8 -*-
import numpy as np
import plotly.offline as pl
import plotly.graph_objs as go

# plotデータ
z = np.array( [ [3,0,4,2], [4,8,1,6], [0,5,2,1] ] ) / 10.
suf = go.Surface( z=z )
data = [ suf ]

# レイアウト
layout = go.Layout( title='TTL', autosize=False,
width=1000, height=600, margin=dict( l=10, r=10, b=5, t=5 )
)

# プロット
fig = go.Figure( data=data, layout=layout )
pl.plot( fig, show_link=False, filename='test-Surface.html' )
と云った様なものですネ。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180210

Anaconda 学習:Plotly で、3D Scatter Plot

2018-03-12 :  PCクリニック
先月半ば(2018-02-16)の記事「Anaconda 学習:Plotly」で書いた如く、
plotly 2.2.2を導入したので、

2年前(2016-05-15)の記事「plotly.js : 3D散布図」に相当する
3次元の散布図を作ってみた。

“Plotly”ドキュメントの“Examples”の、
3D Scatter Plots in Pandas
のページ
じゃなくて、
3D Scatter Plots in Python」のページを参考にした。


-・・・ -・-

その前に、
Anaconda 学習:Plotly」で、
  ・・・・・
  ・・・・・
  Simple Line Plot
  のコードをコピー&ペースト:
コード例
  だが、エラー!?!?!?

  ・・・・・
  ・・・・・
  ・・・・・

  これで動作した。

  本家ドキュメントの例は何故ダメ?

  ・・・・・
  ・・・・・

と書いていたが、
その原因が判明した。

ポイントは、
# ・・・・・

import plotly.plotly as py # plotly は、対話型用

# ・・・・・

import plotly.offline as pl # offline とすべき!

と云うことでした。

・-・ - -・


さて、今回学習した結果は:
# -*- coding: utf-8 -*-
import numpy as np
import plotly.offline as pl
import plotly.graph_objs as go

# plotデータ
x, y, z = np.random.multivariate_normal(np.array([0,0,0]), np.eye(3), 200).transpose()
trace1 = go.Scatter3d( x=x, y=y, z=z, mode='markers',
marker=dict( size=12,
line=dict( color='rgba(217, 217, 217, 0.14)', width=0.5 ),
opacity=0.8
)
)
data = [ trace1 ]

# レイアウト
layout = go.Layout( margin=dict( l=0, r=0, b=0, t=0 ) )

# プロット
fig = go.Figure( data=data, layout=layout )
pl.plot( fig, show_link=False, filename='simple-3d-scatter.html' )
これで、行ける。


本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180208

Anaconda 学習:“Pillow/Image”使えた!?

2018-03-09 :  PCクリニック
前(2018-03-07)の記事「Anaconda 学習:“Pillow/Image”使えない?」を書いた後、
“Anaconda”を導入したもう一台のマシンで確認して見た。

このマシンでも、
今年初め(2018-01-08)の記事「Anaconda2_x64 本格導入
と同じ導入手順で行っている。

Anaconda 5.0.1 : Python 64bit Ver.2.7.14
を入れた後、
conda でパッケージを2つ入れている。
“opencv3 3.2.0”と“pydicom 1.0.0a1”


で、メインマシンと同じプログラムが動作するか?

なんと、何の問題もなく動作した?!?!?!


全く同じ手順で、同じ Anaconda 5.0.1 を入れているので、
Pillow は、4.2.1 ダ。


ひょんなことから、
PIL: DLL load failed: specified procedure could not be found
を見つけたので、
ひょっとして、Pillow を新しくするのではなく、
古いものに変えるたらどうなるのか?

やってみた。

WinPython32_2763 では、Pillow は、2.3.0 だが、
探して、一番古いのは、2.6.0 だった。

で、
Pillow 5.0.0 をアンインストールし、
dsdale24 / packages / pillow 2.6.0」から、

  conda install -c dsdale24 pillow

と、インストールした。


なんと、これで万事上手く行った?!?!?!


それで、念のため、再び Pillow をアップするとダメ。
古いものにするとOK。



原因不明だが、Pillow は、2.6.0 で行くことにする。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180206

Anaconda 学習:“Pillow/Image”使えない?

2018-03-07 :  PCクリニック
以前の「WinPython」で作ったプログラムの動作確認を行った。


当該プログラムは、
WinPython 32bit Ver.2.7.6.3 で作ったもの。

これが、
Anaconda 5.0.1 : Python 64bit Ver.2.7.14 で正常に動作するか?

検証した。

ダメ!
from  PIL  import  Image
でエラー発生???

使っているのは、Pillow 4.2.1


ならばと、新しいものに変えてみた:

anaconda / packages / pillow 5.0.0
で、
pillow-5.0.0 にアップ。

他に、certifi が、2018.1.18 に ( 2017.11.5 から ) アップ。
また、conda も、4.4.8 に ( 4.4.7 から ) アップ。

でも、エラーは解消しない???



仕方がないので、“OpenCV”で代替することにした。


元は、
from  PIL  import  Image

img = Image.open( input_file )
xx, yy = img.size

BT = np.array( img.getdata(), np.uint8 )
といったコード


これなら、
import  cv2

img = cv2.imread( inp_tif, 0 )
yy, xx = img.shape

##### BT = img # これは無くてもイイ(名前の変更で)
で行けるかナ


本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180204

Anaconda 学習:MacroPy は、Linux 版のみ

2018-03-04 :  PCクリニック
ふとしたことから、「Python Macro」で検索したら、・・・・・

forest book”の、
Python とマクロ、代数的データ型」が見つかった。

  前回はマクロの概要と Python でマクロを実装するための
  仕組みについて説明しました。

  Python とマクロ、インポートフックと抽象構文木 - forest book

  動作原理を理解した上で実際にマクロでどういったことができるのか、
  MacroPy というライブラリで提供されている機能をみながら考察してみます。

  ・・・・・
  ・・・・・


そこで、
Anaconda Cloud で、
“MacroPy”を検索してみると、

yikelu / macropy 1.0.3
で、
  Platforms : linux-64
でした。


“Macro”検索では?

26件ヒットし、win-64 用も5件ほどある。

でも、何だか違うみたい?



冒頭に書いた“forest book”の記事も(<紙>に取っては)難解ダ。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180203

Anaconda 学習:Fitting なら curve_fit

2018-03-02 :  PCクリニック
当ブログ内を「Fitting」で検索して見ると、・・・

Python Fitting」の様に、20件弱見つかる。

中でも、
4年前(2014-03-02)の記事「Python 学習:Fitting」が決定版?

その後、
その3ヶ月後(2014-06-09)に「Python 学習:多項式近似なら“Numpy”で
を書いている。


今回、“matplotlib”の“subplot”を学習している時に、
“コード7区”サイトの「カテゴリ 【python】」を見つけた。

このページの途中に、
  ・・・・・
  ・・・・・

  Numpy
  ・numpy の多次元配列を特定の列(or 行)でソート
  ・python と numpy の配列。追加や削除、ソートなど基本操作
  ・3次元正規分布を Axes3D で描画-python
  ・Numpy の vstack、hstack で配列を連結
  ・python の配列。要素をまとめて論理演算。not、and、or、xor
  ・pythonで共分散行列をもとめるには
  ・最小二乗法でカーブフィッティング。関数3つを使い比べ
  ・Numpy の配列に最大値が複数。インデックスを全て取得したい
  ・Numpyの配列をany、allで全件チェック(python)
  ・Numpyのwhereで配列インデックスを取得
  ・Numpy のデータを astype でキャスト

  ・・・・・
  ・・・・・

が載っていた。

見に行ってみた:

  python でカーブフィッティングをやる関数は1つじゃないようです。
  次の3つを見つけました。
  ・ Numpy の polyfit
  ・ Scipy の optimize.leastsq
  ・ Scipy の optimize.curve_fit
  なぜ3つもあるのか悩みますが、とりあえず使い比べてみました。
  機能に違いがあるのか、使いやすいのはどれか・・・
  ・・・・・
  ・・・・・

1番目(polyfit)と3番目(curve_fit)は上記の如く、当ブログで書いている。
2番目(leastsq)は知らなかった?



一方で、
Python SciPy : 非線形最小二乗問題の最適化アルゴリズム
なるサイトを見つけた。

  今回は非線形最小二乗問題(データ近似問題)の
  SciPy の関数についてまとめます。

  関数について
  SciPy で非線形最小二乗問題を解く関数は表 1 のものがあります。

    表1: 非線形最小二乗問題の最適化アルゴリズム
    関数    説明
    leastsq  Levenberg-Marquardt 法で最小二乗問題の解を求める
    nnls    有効制約法で非負の最小二乗問題の解を求める
    curve_fit leastsq のインターフェースを曲線近似用に変更したもの

  leastsq は MINPACK の LMDIF と LMDER のラッパーで、
  Levenerg-Marquardt 法で最小二乗問題の解を求めます。
  Levenerg-Marquardt 法は Gauss-Newton 法よりも計算回数は増えますが、
  非線形性が強い問題でも安定して収束する方法です。
  そのため非線形最小二乗問題を解く手法として標準的に使われています。

  nnls はパラメータが非負の制約条件のもとで
  最小二乗問題の解を求める方法です。

  curve_fit は leastsq のインターフェースを変えたもので、
  内部では leastsq を呼び出しています。


1番目(leastsq)と3番目(curve_fit)は、上記の如く。
なので、この2つの関係を知った。
だが、2番目(nnls)は知らなかった?が、
イラナイかナ?



今回、今更ながらだが、

Numpypolyfit では、
一部の係数を固定(多分ゼロに)することが出来ない?


それで、
本日の学習結果は、・・・・・

本日のブログタイトルの如くです。
Fitting なら curve_fit で決まりダ。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180129

調査結果メモ:無料のバイナリエディタ“xedit”

2018-02-28 :  PCクリニック
訳あって、
「バイナリエディタ フリー ポータブル」と検索したところ、・・・・・


無料バイナリエディター一覧 - フリーソフト100」が見つかった。

これの2番目に、

xedit

  バイナリデータの表示・編集ができるバイナリエディター
  ASCII / EBCDIC / ShiftJIS / EUC-JP / UTF-8 / UCS-2 / グラデーション表示
  に対応し、検索・置換・ジャンプ・アンドゥ・リドゥに加え、
  マーク機能を備えています。
  さらにC言語等で利用される構造体の解析・編集に対応。
  サム/ハッシュ値 / MD5 / SHA-1 / SHA-256 / CRC の算出ができます。

が載っている。

で、見に行ってみると:

  ユーザーレビュー

には、

  他のバイナリエディタはクリップボード経由でのhexデータ入力…

  8バイト浮動小数点数にも対応していました。(確認ミスでした)…

  バージョン 1.72 から 4バイト浮動小数点数の数値解析が…

等々、良さそう。


本家サイトは、・・・・・

ROM化支援バイナリエディタ - xedit -
ですネ。

  このプログラムはフリーソフトのバイナリエディタです。
  元々、他プログラムのバイナリエディット部のデバッグルーチンでしたが、
  意外と使えるので機能追加した形で公開しています。

  特徴
  ・新規ファイルは任意のバイト位置で編集が可能です。(最大 ・・・)
  ・既存ファイルは任意のバイト位置でパッチ編集が可能です。(最大 ・・・)
  ・検索・置換・削除・アンドゥ・リドゥ等の基本的機能が使用できます。
  ・構造体による解析・編集が可能です。
  ・クリップボードのテキストデータを数値認識しデータとして取り込めます。
  ・モトローラS/インテルHEXフォーマット形式のファイルを読み書き出来ます。
   (マークにより指定範囲のみの書き出しも可能)
  ・キャラクター表示に以下を選択出来ます。
    ・ASCII/EBCDIC
    ・Shift-JIS/EUC-JP/UCS-2/UTF-8(Unicode)
    ・グラデーション
  ・サム, ハッシュ, CRC等の算出が出来ます。
    ・SUM
    ・MD5/SHA-1/SHA-256
    ・CRC-8/CRC-16/CRC-32
  ・Luaスクリプトによる細かな編集が可能です。
  ・パレット機能によりカーソル位置の数値解析をカスタマイズできます。
  ・コマンド入力欄から検索・ジャンプなどの基本的機能を命令できます。
  ・複数のウインドウ間でデータ比較ができます。
  ・プラグインで他プロセスメモリ参照等が利用可能です。

  ・・・・・
  ・・・・・



本日はここまで。


各種ツールの代替品調査は続く?


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180116

調査結果メモ:“Explzh”代替“PeaZip”

2018-02-26 :  PCクリニック
現状、“圧縮/解凍”ソフトは、
Explzh」- 多形式に対応した、圧縮解凍ソフト
を使っている。

しかしながら、このソフトは完全フリーでは無い。
個人使用ではフリーだが、・・・

  Explzh は、個人で使用する場合は無料で使えますが、
  企業等、または商用利用する場合には、
  必ず正規のライセンス契約が必要です。
  ・・・・・
  ・・・・・


今回、
この“Explzh”の代替ツールを捜した。


PeaZip」でしょうか?


  150以上のファイル形式をサポートしたオープンソースの圧縮・解凍ソフト。
  ZIPや7z、RAR、CABといった比較的メジャーなものからかなりマイナーな
  フォーマットを解凍可能だ。また、解凍ほどではないが圧縮においても
  対応フォーマットは豊富。7Z/ARC/BZ2/GZ/*PAQ/PEA/QUAD/BALZ/TAR/UPX/
  WIM/XZ/ZIP書庫の作成・変換に対応している。

  インターフェイスを日本語化するには、[Options]-[Localization]
  メニューを選択し同梱の“ja.txt”を読み込めばよい。
  ユーザーインターフェイスはフォルダビューとファイルビューから成る
  左右分割型の2ペイン構成で、「エクスプローラ」とよく似ている。

  ファイルの圧縮を行うには、ツールバーにある[変換]ボタンを押す。
  すると、“新規アーカイブ”画面へと移行するので、そこで各種パラメーター
  を設定して[OK]ボタンを押せばよい。逆に、書庫ファイルを解凍するには
  [解凍]ボタンを押す。[全て解凍]ボタンを利用すれば、指定したフォルダへ
  複数の書庫ファイルを一度に解凍することも可能。
  そのほかにも、書庫ファイルが壊れていないかテストする機能や、
  復元できないようにファイルを完全削除する“安全消去”機能などを搭載。
  GUIでスケジュールスクリプトを作成する機能も備えており、
  定期的にフォルダをバックアップするといった用途に使うこともできる。

  ・・・・・
  ・・・・・


本日はここまで。


各種ツールの代替品調査は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


171207

調査結果メモ:無料のメーラー“Thunderbird”

2018-02-23 :  PCクリニック
これまで使っていたメーラーには不満があった。

今回、
無料で使い勝手の良いメーラーを捜した。

やはり、「Thunderbird」でしょうか?

  Thunderbird 機能概要
  あなたにピッタリのメールソフトをお届けします。
  Thunderbird へのアップグレードがさらに簡単になりました。



  すぐに使える

  メールアカウント設定ウィザード
  これまで、メールアカウントを作成する際は、送受信サーバーの詳細な
  設定情報をすべて入力する必要がありました。新しい Thunderbird では、
  名前とメールアドレス、パスワードさえ入力すれば、Mozilla の
  プロバイダーデータベースから自動的にサーバー設定情報が取得されます。

  ワンクリックアドレス帳
  差出人のメールアドレスを、素早くしかも簡単にアドレス帳へ登録できる
  ようになりました。受信したメッセージ上の☆印のアイコンをクリックする
  だけで、新たな連絡先として追加できます。写真、誕生日、その他の連絡先
  情報を編集するには、このアイコンを再度クリックします。

  添付ファイルの付け忘れ防止
  メッセージの作成中、本文に「添付」などの単語が入力されたとき、
  情報バーを表示して、送信前に必要なファイルを添付するよう促します。

  ・・・・・
  ・・・・・


ウィキペディアでは、
Mozilla Thunderbird

  Mozilla Thunderbird(モジラ・サンダーバード)は Mozilla(モジラ)を起源
  とし、オープンソースで開発が行われている電子メールクライアントである。
  プロジェクト開始当初は Minotaur (ミノタウアー)と呼ばれていた。
  レンダリングエンジン Gecko(ゲッコー)を使用し、優れた描画性能、高速性、
  拡張機能、テーマ機能など拡張性に富む。Mozilla Suite(モジラ・スイート)
  あるいは Netscape Mail/News(ネットスケープ・メール/ニューズ)と
  同様の機能を持つ。

  RSS を取得・購読するためのRSSリーダーや、ベイズ理論による学習型迷惑
  メールフィルタ機能(受信時に迷惑メールと判断されたメールに迷惑メールの
  印を付け、設定によってはさらに「迷惑メールフォルダ」へ振り分けることも
  可能)、タブ表示インターフェイスを標準で備えるなど、他の電子メール
  クライアントに見られない独自の利便性を打ち出している。
  Outlook Express(アウトルック・エクスプレス)などの他の電子メール
  クライアントからの容易な移行機構も備える。

  ・・・・・
  ・・・・・


本日はここまで。


各種ツールの代替品調査は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


171206

調査結果メモ:“波乗野郎”代替“CompleteGetter”

2018-02-21 :  PCクリニック
その昔、「波乗野郎」を使っていた。

“ウィキペディア”での解説は、

  PerMan Surfer 波乗野郎(パーマン・サーファー なみのりやろう)は、
  株式会社ビー・ユー・ジー(現・ビー・ユー・ジーDMG森精機)が開発した
  MacintoshおよびMicrosoft Windows用のWWWオートパイロットソフトウェア。
  略称は波乗野郎。

  1996年3月にプレビュー版のリリースを経て、1996年7月に販売が開始された。

  概要
  波乗野郎は予め収集を行いたいウェブサイトやそれを収集する時間帯を設定する
  必要がある。指定した時間になると自動的にインターネットに接続され、
  指定されたサイトを条件に従ってローカルに複製し、指定したウェブサイトの
  収集が完了すると自動的に回線を切断する機能を持っている。
  そのため、電話代を気にしないで後からゆっくりとウェブサイトを
  閲覧することができるという特徴があった。
  ・・・・・
  ・・・・・


今回、
この“波乗野郎”の代替ツールを捜してみた。


CompleteGetter」が良さそうダ。

  指定したページ以下の階層のリンク先ページを丸ごと保存し、
  バナー広告も一括削除できる


 ソフト詳細説明
 指定したページ以下の階層にある全てのリンク先のページを、
 画像なども含めて丸ごと保存します。

 ・操作が極めてシンプル。基本的にクリック一発で保存。
 ・保存後に、バナー広告等を一括削除。
 ・アンカー記述のみならず、Javascriptによるリンク記述や、
   埋め込みフラッシュにも対応。(一部未対応)

 ・CPU占有率を指定できるので、裏で走らせながら
   表で別の動作を軽快に実行可能。
 ・基本操作ではレジストリを汚さず。
 ・追跡するリンク先ページを選べる(ブログのカテゴリー単位での保存も可能)。
 ・上位階層へ遡っての保存。
 ・このソフトで保存されたファイル群以外のHtmlファイルからも、広告を削除。
 ・IEから右クリックで実行することも可能。

 ・保存したファイル群に対して、「それがどんな内容のものなのか」や
   関連するリンクなどをメモ出来る。
 ・保存後に、サイトの更新部分のみを追加保存。
 ・GUIでの入力のみならず、コマンドラインからパラメータを与えての実行に対応。

 ・簡易ダウンローダーとしても利用でき、連番ファイルも自動で検索し保存。
 ・リジューム機能付きなので、大きいファイルサイズの保存でも安心。
 ・埋め込みフラッシュや動画、BGM等を、ページから本体のみを保存。
 ・Yahoo!フォト から画像の一括保存。

 ・Cpgファイル内コメントの横断検索や、最近開いたCpgファイルや
   DLしたファイルへのアクセス支援ツール付き。


本日はここまで。


各種ツールの代替品調査は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


171126

Go 言語ってどうかナ?

2018-02-19 :  PCクリニック
ふと「Python wget Windows」と検索していたら、・・・・・

Windowsでwgetする色々な方法 - Qiita」が見つかり、

この中に、
  ・・・・・
  ・・・・・
  Go
  Goでなんか用意されているんじゃないかと思って調べてみた。
  goはインストール不要で使えて、exeが作れるので自作の場合はこれが良さげ。

  wget-go
  v0.5で完全版じゃないみたい。動くかどうか試してないです。
  https://github.com/laher/wget-go
  ・・・・・
  ・・・・・

との情報が載っていた。


そこで、
「GoLang」と検索したら、
ドキュメント - The Go Programming Language」が見つかった。

ここから

  Goのインストール
  インストール

  Goディストリビューションのダウンロード
  Download Go クリックして…

と辿って
Downloads - The Go Programming Language
に行き、
 Stable versions (2017-12-21時点)
   go1.9.2
 go1.9.2.windows-amd64.zip」 Archive Windows x86-64 104MB
   2017-10-25 付
をダウンロードした。

これを、
  D:/TOOL/Go/ に展開し、
Path には、
  D:\TOOL\Go\bin を登録した。

そして、上記ドキュメントに従い。
環境変数を追加した:
  GOROOT=D:\TOOL\Go


それから、
プログラミング用に、
  E:/_PD/_Go/ を確保し、

そして、上記ドキュメントに従い。
環境変数を追加した:
  GOPATH=E:\_PD\_Go


さて、試し。

(1) 実際にコーディングして、実行するには、

[E:\_PD\_Go\]  に、/src/hello/ を作り、
そこで、“hello.go”をコーディング:
package main
import( "fmt" )
func main(){ fmt.Printf( "hello, world.\n" ) }
の様なもの。

そして、
  コマンド:go build
でコンパイル(&リンク)
  hello.exe
ができる。
( この名前'hello'は、“hello.go”の方じゃなくて、フォルダ名の方 )


(2) パッケージ( 例: newmath の、Sqrt 関数 )を使う場合、

[E:\_PD\_Go\]  に、/src/newmath/ を作り、・・・ /hello と同列
そこで、“sqrt.go”をコーディング: ( 大文字小文字に注意! )
package newmath
func Sqrt( x float64 ) float64{
z := 1.0
for i := 0; i < 1000; i++{
z -= ( z*z - x ) / ( 2 * z )
}
return z
}
の様なもの。

そして、これを使う hello.go は、
package main
import( "fmt"; "newmath" )
func main(){ fmt.Printf( "hello, world. Sqrt(2)=%v\n", newmath.Sqrt(2) ) }
の様なもの。

(1)同様に、( /hello/ フォルダで )
  コマンド:go build
でコンパイル(&リンク)
  hello.exe
ができる。


なお、出来た“hello.exe”は
他に何も無くても、単独で実行出来る。

但し、<紙>の環境では、AVG でウイルスチェックが走る?!?!?!



本日はここまで。


Go 学習は続く?


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


171220-22

Anaconda 学習:Plotly

2018-02-16 :  PCクリニック
先週(2018-02-05)の記事「Anaconda 学習:pandas と matplotlib」では、

  前(2018-02-02)の記事「Anaconda 学習:cufflinks って何?」では、
  pandasplotlyとを結びつけるcufflinksでした。

  ここで、
  cufflinkscondaじゃなくてpipで導入すべき。
  さらに、plotlyは別途導入が必要(?)
  ・・・・・
  ・・・・・

と書いていたが、


“Anaconda”に含まれるパッケージ:
Packages for 64-bit Windows with Python 2.7
を見てみると、
“plotly”については、2.1.0 が入っているとある。
だが、インストール時点では入っていない。


そこで、
Anaconda Cloud」を調べたら、

conda-forge / packages / plotly 2.2.3
  An interactive, browser-based graphing library for Python

  Documentation: https://plot.ly/python/

  To install this package with conda run:
   conda install -c conda-forge plotly

があった。

  Description
  Plotly's Python graphing library makes interactive,
  publication-quality graphs online.
  Examples of how to make line plots, scatter plots, area charts,
  bar charts, error bars, box plots, histograms, heatmaps,
  subplots, multiple-axes, polar charts and bubble charts.


なので、早速インストール:

  2つダウンロード:conda-4.3.32 ・・・ 4.4.7 からダウングレード
           plotly-2.2.3 ・・・ 追加インストール。

“conda”がダウングレードする。
と云うので、ヤメた。


1つバージョンが古い(?)が、
anaconda / packages / plotly 2.2.2
はどうか?

バージョンと、インストールコマンド以外は同じ記述?

  To install this package with conda run:
   conda install -c anaconda plotly


こっちで、インストール:

5つダウンロード:
   conda-4.4.7 ・・・・・・ 同Ver.   anaconda へ
   ca-certificates-2017.08.26 ・・・ 2017.11.5-0 から downgrade
   openssl-1.0.2n・・・・・ 同Ver. conda-forge から anaconda へ
   certifi-2017.11.5 ・・・ 同Ver. conda-forge から amaconda へ
   plotly-2.2.2・・・・・・ 追加インストール。

結果は1つ追加。


それで、
Documentation サイト: https://plot.ly/python/

「Basic Charts」の「Line Charts

Simple Line Plot
のコードをコピー&ペースト:
# -*- coding: utf-8 -*-
import plotly.plotly as py
import plotly.graph_objs as go

# Create random data with numpy
import numpy as np

N = 500
random_x = np.linspace(0, 1, N)
random_y = np.random.randn(N)

# Create a trace
trace = go.Scatter(
x = random_x,
y = random_y
)

data = [trace]

py.iplot(data, filename='basic-line')
だが、エラー!?!?!?


日本語の解説記事は?

[Python] Plotlyでぐりぐり動かせるグラフを作る

この記事のコードをコピー&ペースト:
# -*- coding: utf-8 -*-
# データの取り込みや操作には、Pandasを用いる
import pandas as pd
raw = pd.read_csv("birth.csv")

# グラフの作成
# 初期化
import plotly
plotly.offline.init_notebook_mode(connected=False)
# connectedをTrueにすると、PlotlyのJavascriptをインターネットから取得する

# プロットするデータの指定
data = [
plotly.graph_objs.Bar(x=raw["year"], y=raw["births"], name="Births"),
plotly.graph_objs.Scatter(x=raw["year"], y=raw["birth rate"], name="Birth Rate", yaxis="y2")
]

# グラフレイアウトの指定
layout = plotly.graph_objs.Layout(
title="Births and Birth Rate in Japan",
legend={"x":0.8, "y":0.1},
xaxis={"title":"Year"},
yaxis={"title":"Births"},
yaxis2={"title":"Birth Rate", "overlaying":"y", "side":"right"},
)

# プロット
fig = plotly.graph_objs.Figure(data=data, layout=layout)
# plotly.offline.iplot(fig) ##### Jupyter内で表示:グラフ作成はiplot
plotly.offline.plot(fig) ##### Jupyter外で表示や、HTMLを作成:plotを呼ぶ
# ファイル名を指定しない場合は、同一フォルダにtemp-plot.htmlが作成される
これで動作した。


本家ドキュメントの例は何故ダメ?

もっと学習ダ。


本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180121

Anaconda 学習:“null オブジェクトの比較”、“整数か否か”

2018-02-14 :  PCクリニック
この1~2ヶ月ほどの期間で発見(?)した、
注意すべき事項を纏めた。


今年初め(2018-01-03)の記事「GSL Shell から、Python に
では、
  ・・・・・
  ・・・・・
  既存の、WinPython 32bit Ver.2.7.6.3 で作ったプログラムを実行。

  NumPy、SciPy、Pillow、matplotlib そして、OpenCV3 も行けそう?

  1点エラーとなったのは:
    “if hoge == None:”
  これは、
    “if hoge is None:”
  で無いとダメでした。
  ・・・・・
  ・・・・・



GSL Shell 言語との違いとして、
先月下旬(2018-01-26)の記事「Anaconda 学習:整数の除算には要注意」では、
  ・・・・・
  ・・・・・
  整数除算の結果は整数と云うこと!!!

  つまり、for の変数 n は整数なので、

  ÷2 じゃなくて、÷2.とすべし!
  ・・・・・
  ・・・・・



また、リスト/アレイ/配列 の添字は、

整数型データで無いとダメ。

 A = [ 1, 2, 3 ]

に対して、

 n = 1
 m = 1.0

の時、

 A[n] はOK
 A[m] はエラー

これ、n、m が計算した結果だった場合は、要注意ダ。



本日はここまで。


Anaconda ( Python ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


171215,180109F,0114
おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
06 | 2018/07 | 08
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク