2022年12月30日金曜日

backquote でIME OFF

MDなどでは、backquoteで等幅フォントを出すので、IMEが切れてくれるとありがたい、ということで設定。私はcmd-spaceでIMEのON/OFFをしているので、それを出している。デフォルトだとctl-spaceだとおもう。
  • .config/karabinar/assets/complex_modifications/xxxx.json に下記を登録
    {
      "title": "for vscode md",
      "rules": [
        {
          "description": "turn off IME with backslash",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "grave_accent_and_tilde"
              },
              "to": [
                {
                  "key_code": "spacebar",
                  "modifiers": [
                    "command"
                  ]
                },
                {
                  "key_code": "grave_accent_and_tilde"
                }
              ],
              "conditions": [
                {
                  "type": "input_source_if",
                  "input_sources": [
                    {
                      "language": "ja"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
    
  • karabinar-element のcomplex modificationで選択してインストール

2022年12月14日水曜日

vscode でawsome emacsを入れたら cmd-c でコピーできなくなる問題

なんか知らんが、title-case というキャピタライズするコマンドにマップされている。 コピーしようとすると微妙にキャピタライズされていてコンパイル通らなくなったりして 発狂しそうなので、対策 keyboard shortcut でMCX-Emacs: MCX-Emacs: Transform to title case の cmd-C の欄を削除すればいい。 自動的に上書きが消えるのか、デフォルトのコピー動作が復活するようだ。

2022年12月6日火曜日

matplotlibで適当なプロットを書く

  • tick_params で軸上の値を消す
  • PathPatch で線を引く
  • text で任意の場所に字を書く
    # モデルの複雑さと精度
    import matplotlib.pyplot as plt
    from matplotlib.path import Path
    import matplotlib.patches as patches
    
    plt.rcParams["font.family"] = "Hiragino Sans"
    plt.rcParams["font.size"] = 24
    
    train = [ (0., 0.),  (0.2, 1.),  (0.8, 1.0),  (1, 1.0),]
    test = [ (0., 0.),  (0.2, 0.95),  (0.8, 0.8),  (1, 0.5),]
    codes = [Path.MOVETO, Path.CURVE4, Path.CURVE4, Path.CURVE4, ]
    
    fig, ax = plt.subplots()
    fig.set_size_inches(12, 8, forward=True)
    
    ax.add_patch(patches.PathPatch(Path(train, codes), facecolor='none', lw=3, edgecolor="red"))
    ax.add_patch(patches.PathPatch(Path(test,  codes), facecolor='none', lw=3, edgecolor="blue", ls="--"))
    
    ax.set_ylabel("精度")
    ax.set_xlabel("小 <---- モデルの複雑度 ----> 大")
    ax.tick_params(axis='x', which='both', bottom=False, top=False, labelbottom=False) 
    ax.tick_params(axis='y', which='both', left=False, right=False, labelleft=False) 
    ax.set_xlim(-0.05, 1.05)
    ax.set_ylim(-0.05, 1.05)
    ax.text(0.4, 0.9, '訓練')
    ax.text(0.7, 0.6, 'テスト')
    None
    
  • 2022年12月5日月曜日

    matplotlibで日本語フォント

    import matplotlib.pyplot as plt
    from matplotlib.font_manager import FontProperties
    fp = FontProperties(fname=r'/System/Library/Fonts/ヒラギノ丸ゴ ProN W4.ttc', size=16)
    
    plt.plot([1], [2], '^')
    plt.xlabel("test日本語", fontproperties=fp)
    
    とかやればいいようだ。 jupyter notebookでもいける。 フォントのパスを設定しなければならないのが面倒だが、
    from matplotlib.font_manager import findfont
    
    fp = FontProperties(fname=findfont('Osaka'), size=16)
    
    のようにすることもできるようだ。ただ、うまく見つけてくれない場合もあるようで、 よくわからない。Osakaは見つかるがヒラギノはこの方法だとうまく行かない。わからん。。
    fp = FontProperties(fname=findfont('Hiragino Sans'), size=16)
    
    でヒラギノ角ゴシックはいけるが、ヒラギノ丸ゴシックはうまく設定できなかった。なにがちがうのか。。

    逐一設定しなければならないのは面倒。 デフォルトのfontproperties を設定する方法はないのだろうか。 こちらによれば、下のようにすればいちいち設定しなくて済む。 しかし、ラベル以外に日本語フォントを使うのはあんまり良くないかもしれない。見栄えが悪い。

    plt.rcParams["font.family"] = "Hiragino Sans"
    plt.rcParams["font.size"] = 16
    
    plt.plot([1], [2], '^')
    plt.xlabel("test日本語")
    plt.ylabel("test日本語")