Skip to content

Instantly share code, notes, and snippets.

@terasakisatoshi
Created June 11, 2020 04:45
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save terasakisatoshi/a26da05fa8077e9cda816e35ba0a12e1 to your computer and use it in GitHub Desktop.
Save terasakisatoshi/a26da05fa8077e9cda816e35ba0a12e1 to your computer and use it in GitHub Desktop.
Data visualization tool using Streamlit
import pathlib
from typing import List
from PIL import Image
import streamlit as st
from tensorflow import keras
@st.cache
def download() -> str:
data_dir = keras.utils.get_file(
origin="https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz",
fname="flower_photos",
untar=True,
)
return data_dir
class FlowerDataset:
def __init__(self):
self.data_dir = pathlib.Path(download())
self.labels = ["sunflowers", "daisy", "roses", "tulips", "dandelion"]
def select(self, label: str) -> List[pathlib.Path]:
return list(self.data_dir.glob(f"{label}/*"))
def main():
st.markdown("# Data visualization tool using Streamlit")
dataset = FlowerDataset()
selector = st.sidebar.selectbox("Select your favorite flower", dataset.labels)
selected_data = dataset.select(selector)
index = st.sidebar.number_input(
f"Select index from 0 to {len(selected_data)}",
min_value=0,
max_value=len(selected_data),
value=0,
step=1,
)
sample_path = selected_data[index]
image = Image.open(sample_path)
expand = st.sidebar.checkbox("Expand")
degree = st.sidebar.slider("Degree", min_value=0, max_value=180, step=1)
st.image(image.rotate(degree, expand=expand))
if __name__ == "__main__":
main()
@terasakisatoshi
Copy link
Author

terasakisatoshi commented Jun 11, 2020

How to use

  1. Download this app.py
  2. Install Python packages via pip
$ pip install streamlit tensorflow pillow
$ streamlit run app.py
$ # Or
$ streamlit run https://gist.githubusercontent.com/terasakisatoshi/a26da05fa8077e9cda816e35ba0a12e1/raw/41541b7a1c842fe484f44ca8be2cd4fea00e7f94/app.py

References

License

MIT

@terasakisatoshi
Copy link
Author

goma

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment