分野

ラベル パソコン・タブレット・スマホ の投稿を表示しています。 すべての投稿を表示
ラベル パソコン・タブレット・スマホ の投稿を表示しています。 すべての投稿を表示

2024/04/20

Matplotlibによる各種グラフの作成

PythonでMatplotlibを使ったグラフの作成方法を勉強中に
自分なりに工夫して試作したグラフを紹介します。
Pythonのプログラムと描けたグラフを載せておきます。


関数のグラフ


import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, np.pi*2, 73)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots()

plt.plot(x, y1, label='sin')
plt.plot(x, y2, label='cos')
plt.title('Sin/Cos curves')
plt.xlabel('radian')
plt.ylabel('value')
ax.set_xticks(np.linspace(0, np.pi*2, 5))
plt.grid(color='blue', linestyle=':')
plt.legend() # 凡例を表示
plt.show()

棒グラフ


import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5])
y = np.array([125, 95, 280, 160, 70])
fig, ax = plt.subplots()
ax.set_ylim(0, 300)
fruits = ["Apple", "Banana", "Orange", "Grape", "Strawberry"]

plt.bar(x, y, color="#1E7F00", linewidth=0, tick_label=fruits, align="center")
plt.grid(color='blue', linestyle=':', axis='y')
plt.show()

円グラフ


import numpy as np
import matplotlib.pyplot as plt

tokhyo = [1200, 900, 600, 300, 240, 100, 150] # 得票総数(万)
party = ['Jimin', 'Ritumin', 'Isin', 'Komei', 'Kyosan', 'Kokmin', 'Sinsen']

# 得票率を計算して小数点第1位までの%で表示する円グラフ
plt.pie(tokhyo, labels=party, shadow=True, autopct='%1.1f %%')
#plt.legend() # 凡例を表示するなら1桁目のコメントアウトを外す
plt.show()

ヒストグラム


import numpy as np
import matplotlib.pyplot as plt

# 平均150、分散8、件数1000 の正規分布に従う乱数を生成
shincho = np.random.normal(150, 8, 1000) 

plt.xlabel('height (cm)')
plt.ylabel('number of students')
plt.hist(shincho, 20)
plt.grid(True)
plt.show()

2013/10/13

Nexus 7 で無料の高機能なBASICアプリでプログラムを作ってみた

  Nexus 7 に BASIC! という無料のプログラミング・アプリをインストールしたまま、しばらくはサンプル・プログラムを動かしてみるだけでしたが、 最近初めて自分のプログラムを作ってみました。
パソコンを黎明期から使っている私には、やはり手軽に使える BASICが懐かしいです。

  このBASICはプログラムに行番号が不要でラベルを使えるので、読みやすいプログラムが書けます。
  ユーザーが独自の関数を作り、それを式の中で使ったり、値の返らない(要らない)サブルーチンとして呼び出したりできます。
  いろんな命令が盛りだくさんで、加速度センサーなど、マシン(端末)に備わっている多くの機能を扱える高機能な BASIC です。
  実行速度も速いです。
  コメントや文字列に日本語を使うこともできます。

  このBASIC に関するホームページには、いろいろな名前が出てきて、私の頭がこんがらがりそうになったのでここで整理しておきます。

  •   正式な名前は「RFO BASIC! for Android」です。
  •   Google Play でのアプリ名は「 BASIC! 」だけです。
  •   マニュアルの名前は「 De_Re_BASIC! 」です。この言葉は「 BASIC! について」というような意味です。

  アプリ作者によるサイトは http://laughton.com/basic/ です。簡単なヘルプはアプリに入っていますが、詳しいマニュアルはここからダウンロードできます。ただし、全て英語です。といっても簡単な英語ですので、プログラミングに慣れた人なら比較的すらすらと読めると思います。
  iPhone や iPad などの iOS 端末用に、よく似た名前の(大文字と小文字が違う)「 Basic! 」というBASICアプリが APP Store にありますが、これと BASIC! とは全く別のものですので、間違わないでください。

  この BASIC のサンプル・プログラムのリストを眺めたとき、例えば「 Gr.circle 」という風に命令の途中に「.」が入っていたりして、オブジェクト指向のプログラミングをしなければいけないと誤解させるような面構えだったので、敬遠していたのですが、実は全然オブジェクト指向ではありませんでした。単に命令を分類する手段に「.」を使っている感じです。

  さて、私の作ったプログラムと実行結果の画像を下に載せておきます。
いろいろな大きさと色の正方形を画面いっぱいにたくさん描くプログラムです。

  このプログラムと似たようなプログラムで円をたくさん描いて、できた画像を私の Nexus 7 のホーム画面の壁紙として使っています。世界にたった一つの、自作の壁紙です。
このようなプログラムは、乱数のさじ加減を替えると、特定の傾向の色や、大きさの幅を持たせることができ、同種の図形による様々な模様を作り出すことができます。

  このBASICを使えば、グラフィックスに限らず、ちょっとした自分だけが使うユニークで便利なプログラムを作成することができます。しかも一つ一つのプログラムにアイコンを付けてホーム画面に配置するためのウィジェットが用意されているので、自分の作ったプログラムを他のアプリと同じような感覚で使うことができます。

-----------------------------------------------
Gr.open 255,0,0,0  % 背景は透明度なしで黒
Gr.orientation 0   % Force Landscape
Gr.screen w, h
dummy = randomize(0)
maxx = w
maxy = h
maxd = 400
halfd = maxd / 2

for i=1 to 500
  a = rnd()*128+127
  r = rnd()*235+20
  g = rnd()*235+20
  b = rnd()*235+20
  fill = 1
  Gr.color a,r,g,b,fill
determine:
  x1 = rnd()*maxx
  y1 = rnd()*maxy
  x2 = x1 + rnd()*maxd - halfd
  y2 = y1 + rnd()*maxd - halfd
  s = sqr((x2 - x1)^2 + (y2 - y1)^2)
  if s < 100 then goto determine
  Gr.set.stroke s
  Gr.line nl,x1,y1,x2,y2
  Gr.render
next i

do
until 0
-----------------------------------------------

2013/02/21

アンドロイドのワープロの現状

 Android 用の Office Suite に含まれるワープロアプリはどれも Microsoft Word との互換性を謳っているが、それは MS Word で作成した文書ファイルを読み込んだときの、表示に限定されているようなアプリがほとんどだ。

 タブレットだけを使って新しく文書を作成するときの互換性は極めて低く、ごく基礎的なことができるにすぎない。

 それはおそらく、それらのアプリは、まず文書ファイルのビューワーとして作成されたのであり、新規に文書を作成する機能は後に、おまけのように追加されたのが始まりだからなのだろう。

 例えば、表を挿入する機能は持っているが、挿入された表の列の幅を調整する機能は持っていない。列が2つある表を挿入したら、真ん中に区切りがある、等しい幅の列が2つ作成されて、それ以上は幅をいじれない。幅を調節したければ、いったんパソコン上の MS Word (または互換ソフト)へ読み込んで幅の調整をして書き込む必要がある。それをもう一度このタブレットへ読み込むと、パソコンで設定した列の幅の変更が反映されている。
 図や写真の挿入にしても同じ要領だ。図の周りの文字の回り込み方も、パソコンへ読み込んで調整するしか方法がない。

 つまり、書式設定の複雑な文書は、初めに書式を決めたテンプレート(雛形)をパソコンの MS Word 等で作成してから実際の文字をタブレットで入力するとか、
パソコンで作成した文書のちょっとした修正にタブレット使う、というのが、タブレット上の現状のワープロアプリの正しい使い方であると言える。

 タブレットの性能は飛躍的に向上してきているので、高性能なタブレットはパソコン並みの編集機能を持ったワープロアプリも動かせるだけの性能を持っていると思うが、アプリの作成は Andoroid というくくりで行われるので、傑出した機種があっても、それに対応したアプリは作られにくいのだろう。Android の端末全部の性能が一定水準に達する日まで、パソコン用と同等な性能を持ったアプリが現れるのは難しいだろう。

※ 第1稿よりあとで分かったのだが、Kingsoft Office は、上の文章に『できない』こととして例示されていることが『できる』ような、もっと高性能なアプリである。それで、上の文章は KIngsoft Office には当てはまらないことを、ここに断っておく。

Matplotlibによる各種グラフの作成

PythonでMatplotlibを使ったグラフの作成方法を勉強中に 自分なりに工夫して試作したグラフを紹介します。 Pythonのプログラムと描けたグラフを載せておきます。 関数のグラフ import numpy as np import matplotli...