Streamlitでも図面のオーバーレイみたいなやつやりたい

ダッシュボードの紹介とか受けて図面上にここは正常、ここは停止、みたいなやつよく見るので、やれる範囲で再現したい。

完成図

画像はGeminiで「Create an image of Holland lop」で出してもらいました。

ソースコード

import streamlit as st
import os
import pandas as pd 
import datetime as dt
import matplotlib.pyplot as plt
import japanize_matplotlib
from PIL import Image
from matplotlib import patches

######################
# アイテム名取得
######################
def main():
    fig, ax = plt.subplots(1,1,squeeze=False,figsize=(8,6))

    ############## 
    # ○とテキスト生成
    ##############
    c = patches.Circle( (800,550), 100, facecolor="pink", edgecolor="red", label="circle", alpha=0.6)
    ax[0,0].add_patch(c)
    ax[0,0].text(750, 680, "なでてOK", fontsize=8.0, backgroundcolor="lightgray")
    
    ax[0,0].axis('off') # 軸 オフ
    im = Image.open("rabit.jfif")
    ax[0,0].imshow(im, alpha=1) # 画像

    st.pyplot(fig)

if __name__ == "__main__":
    main()

使った要素メモ

  • .imshowで画像を設定
  • .axis(‘off’)で軸オフにする
  • .textでテキスト表示
  • .Circleで円を表示

後はfacecolor, edgecolorを条件によって変えたり、○とテキストを増やしていけば作れるんじゃないかと模索中

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA