Skip to content

Instantly share code, notes, and snippets.

View wakita's full-sized avatar

Ken Wakita wakita

View GitHub Profile
@wakita
wakita / Readme.md
Last active July 31, 2020 08:02
# CustomJS についてのわかりやすい例題

CustomJS についてのわかりやすい例題

加えて CustomJS を扱うためのツール (snjs.py) を作成した.

JavaScriptによるコールバック関数の定義

Bokeh では Python のファイルのなかに文字列として JavaScript のコードを埋め込みます.でも,二種類の言語の文法が混在するのはやっかいです.

そこで,JavaScript のコードは独立したものを *.js ファイルに関数として定義することにしました.たとえば,以下は普通の JavaScript の関数のように見えますが,本ツールを利用すると slider_on_change という名前で,filtercds という変数によって,Python のデータ構造を受け取るような CustomJS の定義として扱われます.

@wakita
wakita / custom.py
Created July 16, 2020 06:13
Bokehで時前のモデルを作る方法
from bokeh.core.properties import String, Instance
from bokeh.models import HTMLBox, Slider
class Custom(HTMLBox):
__implementation__ = 'custom.ts'
text = String(default='Custom Text')
slider = Instance(Slider)
from bokeh.io import show
from bokeh.layouts import column
@wakita
wakita / custom.py
Created July 16, 2020 06:13
Bokehで時前のモデルを作る方法
from bokeh.core.properties import String, Instance
from bokeh.models import HTMLBox, Slider
class Custom(HTMLBox):
__implementation__ = 'custom.ts'
text = String(default='Custom Text')
slider = Instance(Slider)
from bokeh.io import show
from bokeh.layouts import column
#!/bin/sh
mkdir -p venv logs
if [ ! -d examples ]; then
git clone https://github.com/joranbeasley/bokeh_wordcloud2.git
cp -r bokeh_wordcloud2/examples .
fi
option=$1
@wakita
wakita / treeview.py
Last active February 4, 2020 07:56
Hierarchical menu of UN countries and regions
#!/usr/bin/env bokeh serve --show
######################################################################
# Load the United Nation countries and regions dataset
# The data was obtained from: https://unstats.un.org/unsd/methodology/m49/
from math import nan
import pandas as pd
regions = pd.read_excel('../data/UNSD-M49.xlsx')
@wakita
wakita / watch_slide.py
Last active November 26, 2019 09:48
Pandoc で Reveal JS スライドを作るときに小便利なスクリプト。Markdown が更新されたら Pandoc を起動して HTML スライドを作成し、それができたら Google Chrome をリフレッシュする。
#!/usr/bin/env python
import os, re, sys, time
from watchdog import events, observers
DEBUG = '--debug' in set(sys.argv)
MD = 'talk.md'
@wakita
wakita / divfunc.py
Created November 12, 2019 00:21
{(x_i, f(x_i)} が等間隔に並ぶような点列 {x_i} を求める
import numpy as np
from crfmnes import CRFMNES
np.set_printoptions(formatter={'float_kind': lambda f: f"{f:.2f}"})
def divide(f, x0, xn, n):
'''
divide: p_i = (x_i, f(x_i)) (i = 0, 1, ..., n) について、
x_0 = x0, x_n = xn, (x_{i-1}, f_{x_{i-1}}) = (x_i, f_{x_i})
@wakita
wakita / s.scala
Created October 5, 2019 03:56
xxx
/*
プログラムの実行手順:
1. ターミナルを開き、build.sbt がある場所で sbt と入力し、return を押す
2. project tetris と入力し、return を押す
3. run と入力し、return を押す
4. 以降、もう一度コンパイルしたいときは run と入力
*/
package shape
@wakita
wakita / sudoku.py
Last active May 13, 2024 12:57
SMTソルバーを用いた数独の解
import numpy as np
from z3 import *
# 例題
board_spec = '''
39
1 5
3 5 8
8 9 6
7 2
@wakita
wakita / gradation-l.py
Last active September 16, 2019 22:12
知覚的均等な色見に関するグラデーション
import numpy as np
from colormath.color_objects import LabColor, XYZColor, sRGBColor
from colormath.color_conversions import convert_color
from colormath.color_diff import delta_e_cie2000
# 各種関数を Numpy array に対応
labcolor = np.vectorize(LabColor)
lab_l = np.vectorize(lambda lab: lab.lab_l)
lab_a = np.vectorize(lambda lab: lab.lab_a)