そらまめくんのデータをplotlyで表示

soramame.env.go.jp

import pathlib

import pandas as pd

pd.options.plotting.backend = "plotly"

df = pd.read_csv(
    "https://soramame.env.go.jp/data/sokutei/NoudoTime/38201030/7day.csv",
    dtype={
        "SO2": float,
        "NO": float,
        "NO2": float,
        "NOX": float,
        "SPM": float,
        "PM2.5": float,
        "WD": object,
        "WS": float,
    },
    na_values=["-", "  "],
)

df.index = pd.to_datetime(
    {"year": df["年"], "month": df["月"], "day": df["日"], "hour": df["時"]}
)

df.drop(["年", "月", "日", "時"], axis=1, inplace=True)

fig = df[["SO2", "NO", "NO2", "NOX"]].plot()

# view

fig.show()
# html

fig.write_html("plotly.html", include_plotlyjs = "cdn", full_html = True)

”””
p = pathlib.Path("plotly.html")

with p.open(mode="w") as f:
    f.write(fig.to_html(include_plotlyjs="cdn"))
”””
# png

# !pip install -U kaleido

import plotly.io as pio

pio.kaleido.scope.default_format = "png"

pio.kaleido.scope.default_width  = 1400
pio.kaleido.scope.default_height = 1000

fig.write_image("table.png")