foliumのpopupの日本語が縦書きになる現象と悪戦苦闘したら奇跡が起きた話


目次

  1. はじめに
  2. foliumとは
  3. 今回解決したい現象
  4. 奇跡のゴリ押し解決
  5. 色々試してみる
  6. おわりに

0. はじめに

最近folium直感的で便利だなーと思い始めて色々遊んでいたが、popupの日本語がなぜか縦書きになるという現象が発生したので今回はこれと戦ってみる。

環境

  • python : 3.8.9
  • folium : 0.12.1

1. foliumとは

foliumとは・・・
インタラクティブな地図を作成できるpythonライブラリ

自分的利点

  • 緯度経度で簡単に可視化できる!
  • いろんな見た目のマップを作れる!
  • html形式のファイルに簡単にできる!
  • numpy配列を使うと大量の座標を一気に地図にいれられる! 
  • コードが直感的!

まずはインストール

pipenv install folium

2. 今回解決したい現象

# インポート
import folium

# マップの生成
## location: 可視化時の中心地点
## zoom_start: 最初の拡大率
m = folium.Map(location=[35.681382, 139.76608399999998], zoom_start=8)

# 座標の追加
## 最初の引数: [緯度, 経度]
## popup: マーカーをクリックした時の吹き出し内のtext
folium.Marker([35.681382, 139.76608399999998],popup="東京駅").add_to(m)

# 表示
m

# htmlファイルにしたい場合
filename = '任意のファイル名'
m.save(filename)

実行結果

この通り、吹き出しの中が縦書きになってしまっている。。。
色々調べてみたが解決しなかった為、今回はゴリ押しで解決してみる。

3. 奇跡のゴリ押し解決

東京駅の後ろに全角スペースを入れてみた。

m = folium.Map(location=[35.681382, 139.76608399999998], zoom_start=8)

folium.Marker([35.681382, 139.76608399999998],popup="東京駅 ").add_to(m)

m

すると、、、

幅が2文字分に増えた!!
(本当に偶然見つけた為、ちょっとびっくりした)

もう1全角スペース足してみる。。

とまあ、このように全角スペースを1つ加えると横の文字数が1文字分増えることが判明した。(原因は謎)

4. 色々試してみる

せっかくなので色々試してみた。

試したこと 結果
半角スペース 増えない
'abc' abcの部分のみ横書き
全角括弧 増える
半角括弧 半角括弧と次の1文字だけ同じ行
1文字ずつ+で結合 増えない
!(全角) 増える
お願いしてみる
+"横書きにしてください"
悉く縦書きにされる

5. おわりに

色々と試してみたが、原因は分からなかった。。。
今回試した中では、全角スペースが一番良いのではなかろうか。(地図の方の見た目は変わらないので、、)

結果:横に増やしたい文字数分だけ全角スペースを突っ込むというゴリ押し解決法。。。

もし、正攻法を知っている方がいれば教えてください!!