matplotlibで階級を指定してヒストグラムを作る
plt.hist のbins に階級を表すリストを指定することで、任意の区切りで階級を設定したヒストグラムを作成できる。 例えば、最小を 40, 最大を 80 として、10区切りにする場合、以下のようにする。
fig, ax2 = plt.subplots() n, bins, patches = ax2.hist(df, bins=[x for x in range(40, 90, 10)])
bins の出力結果は以下の通り。40 から 80 まで、10区切りになっていることが分かる。
array([40., 50., 60., 70., 80.])
サンプル: 全文
import pandas as pd import matplotlib.pyplot as plt # サンプルデータ data = [64,73,63,68,44,59,61,42,57,70,56,64,53,66,48,48,51,54,54,73,51,44,83,74,47,57,41,45,60,72,77,69,72,62,78,58,64,61,52,61,45,66,58,60,54,71,57,52,54,73] df = pd.DataFrame(data) fig, ax2 = plt.subplots() n, bins, patches = ax2.hist(df, bins=[x for x in range(40, 90, 10)])
flet で 2つの Tab を切り替えて使えるようにする
Tab を使って画面を切り替えられるようにした
import flet as ft
def main(page: ft.Page):
def button_click(e):
print("-- button_click")
message = "data:" + e.control.data + "\n2\n3\n4"
push_result.value = message
text1.value = "ここも変えられる = " + message
page.update()
print("updated--")
# 定数設定
BUTTON_COLOR = ft.colors.TEAL_ACCENT_100
BGCOLOR = ft.colors.TEAL_500
# page setting
page.title = "button example"
page.window.width = 220
page.window.height = 520
page.window.title_bar_hidden = False
page.window.frameless = False
page.scroll = ft.ScrollMode.ALWAYS
page.bgcolor = BGCOLOR
# ボタンに格納するデータ
button_data = {
"minamotono": "yoritomo",
"minamotono": "yoshitune",
"坂本 ": "ryoma",
"西郷 ": "takamori",
"桂 ": "小五郎",
"tokugawa": "ieyasu",
"sugawarano": "michizane",
"mouri": "motonari",
"oda": "nobunaga",
}
#-----------------------------------------------------------
# Tab1 用のデータ
#-----------------------------------------------------------
# ボタンデータの読み込みとボタン情報の生成
column_items = []
for key in button_data:
column_items.append(
ft.ElevatedButton(
key, data=button_data[key],
height=30,
width=150,
style=ft.ButtonStyle(
shape=ft.RoundedRectangleBorder(radius=10)
),
bgcolor=BUTTON_COLOR,
on_click=button_click
)
)
# ボタンを押した結果を表示するための text 領域
push_result = ft.Text("result",
max_lines=30,
selectable=True,
)
column_items.append(push_result)
# ボタンをコンテナに登録
container = ft.Container(
content=ft.Column(column_items),
# bgcolor=BGCOLOR,
bgcolor=ft.colors.RED_100,
padding=10,
adaptive=True
)
#-----------------------------------------------------------
# Tab2 用のデータ
#-----------------------------------------------------------
# ボタンをコンテナに登録
text1 = ft.TextField(
"text1",
multiline=True,
adaptive=True,
)
text2 = ft.Text("text2")
column_items2 = [text1, text2]
column2 = ft.Column(column_items2)
container2 = ft.Container(
content=column2,
# bgcolor=BGCOLOR,
bgcolor=ft.colors.RED_100,
padding=10,
adaptive=True
)
#-----------------------------------------------------------
# Tab1 と Tab2 をページに追加
#-----------------------------------------------------------
tab = ft.Tabs(
selected_index=0,
animation_duration=300,
tabs=[
ft.Tab("Tab1", content=container),
ft.Tab("Tab2", content=container2),
]
)
page.add(
tab,
)
# ft 処理開始
ft.app(target=main)
辞書で定義したデータをもとに flet の ElevatedButton を作成するコード
辞書で定義したデータをもとに、flet の ElevatedButton を作成するコードのサンプル
辞書のキーを ElevatedButton のボタンに表示される文字列にしている。 辞書の値は、ElevatedButton の data として定義しておき、event 用の関数で e.control.data と形で受け取っている。
import flet as ft
def main(page: ft.Page):
def button_click(e):
column.controls.clear()
column.controls.append(ft.Text("data:" + e.control.data))
page.update()
# 定数設定
BUTTON_COLOR = ft.colors.TEAL_ACCENT_100
BGCOLOR = ft.colors.TEAL_500
# page setting
page.title = "button example"
page.window.width = 220
page.window.height = 220
page.window.title_bar_hidden = False
page.window.frameless = False
page.scroll = ft.ScrollMode.ALWAYS
page.bgcolor = BGCOLOR
# ボタンに格納するデータ
button_data = {
"minamotono": "yoritomo",
"minamotono": "yoshitune",
"坂本 ": "ryoma",
"西郷 ": "takamori",
"桂 ": "小五郎",
"tokugawa": "ieyasu",
"sugawarano": "michizane",
"mouri": "motonari",
"oda": "nobunaga",
}
# ボタンデータの読み込みとボタン情報の生成
column_items = []
for key in button_data:
column_items.append(
ft.Row([
ft.ElevatedButton(
key, data=button_data[key],
height=30,
width=150,
style=ft.ButtonStyle(
shape=ft.RoundedRectangleBorder(radius=10)
),
bgcolor=BUTTON_COLOR,
on_click=button_click)
])
)
# ボタンをコンテナに登録
container = ft.Container(
content=ft.Column(column_items),
bgcolor=BGCOLOR,
padding=10,
adaptive=True
)
# これはなくてもよい。ボタンを押した時の検証用に作成
column = ft.Column()
# コントロールをページ追加
page.add(
ft.Row([container]),
ft.Row([column])
)
# ft 処理開始
ft.app(target=main)
辞書で準備した情報をもとに flet でボタンを作る (隣に Textを配置)
辞書で準備したデータを読み込んでボタンを作るサンプル ElevatedButton の文字を大きくしたい場合、ElevatedButton の字は大きくできないようなので、ボタンの横に Text を配置し、 Text の文字を大きくして表示した。
import flet as ft
def main(page: ft.Page):
def button_click(e):
column.controls.clear()
column.controls.append(ft.Text("data:" + e.control.data))
page.update()
# 定数設定
BUTTON_COLOR = ft.colors.TEAL_ACCENT_100
BGCOLOR = ft.colors.TEAL_500
# page setting
page.title = "button example"
page.window.width = 350
page.window.height = 500
page.window.title_bar_hidden = False
page.window.frameless = False
page.scroll = ft.ScrollMode.ALWAYS
page.bgcolor = BGCOLOR
# ボタンに格納するデータ
button_data = {
"minamotono": "yoritomo",
"minamotono": "yoshitune",
"坂本 ": "ryoma",
"西郷 ": "takamori",
"桂 ": "小五郎",
"tokugawa": "ieyasu",
"sugawarano": "michizane",
"mouri": "motonari",
"oda": "nobunaga",
}
# ボタンデータの読み込みとボタン情報の生成
column_items = []
for key in button_data:
column_items.append(
ft.Row([
#ft.Text はなくてもよい。
ft.Text(key, size=20, width=150, weight=ft.FontWeight.BOLD,
style=ft.TextStyle(word_spacing=10),
text_align=ft.TextAlign.RIGHT,
bgcolor=BUTTON_COLOR
),
ft.ElevatedButton(
key, data=button_data[key],
height=30,
width=150,
style=ft.ButtonStyle(
shape=ft.RoundedRectangleBorder(radius=10)
),
bgcolor=BUTTON_COLOR,
on_click=button_click)
])
)
# ボタンをコンテナに登録
container = ft.Container(
content=ft.Column(column_items),
bgcolor=BGCOLOR,
padding=10,
adaptive=True
)
# これはなくてもよい。ボタンを押した時の検証用に作成
column = ft.Column()
# コントロールをページ追加
page.add(
ft.Row([container]),
ft.Row([column])
)
# ft 処理開始
ft.app(target=main)
Beautiful Soup を使ったデータの取得
Beautiful Soup を使ったデータの取得
VBScript で呼び出したプログラムの実行結果(標準出力)を取得する方法
課題
VBScript でプログラムを実行した時に、実行結果としてコマンドプロンプトに表示される文字列を取得したいと考えたことはありませんか ?
WScript.Shell の Run で実行した場合、コマンドの実行結果(標準出力)を取得することはできません。
解決方法
WScript.Shell オブジェクトの Exec メソッドを使うと、標準出力を取得することができます。
例えば、Exec メソッドを使って、ipconfig を実行し、その実行結果を表示する場合のスクリプトは、以下のようになります。