カテゴリー

Plotly全般

【plotly&size, width】Scatterのサイズやlineの太さ一覧表を作成

2021年12月31日

こんな人にオススメ

plotlyのScatterのマーカーの大きさとか線の太さが、実際にはどれくらいなのかがわかりやすいようなグラフを作りたい。

ということで、今回はplotlyの散布図で使われるmarkerサイズやlineの太さがどれくらいなのかが一目でわかる、一覧グラフを作成する。毎回サイズを1ずつ変更していい感じにするのが面倒。だったら予め一覧を作成しておいて、それを参考にしたらいい。

今回は設定した大きさ・太さ一覧を全てプロットするグラフとスライダー機能を使って手動で一覧を変更することができるグラフの2種類を作成する。

また、goの散布図go.Scatterを使って一覧を作成するけど、pxにも応用できる。gopxの散布図については以下参照。

【plotly&px.scatter】pxでの散布図の描き方

続きを見る

python環境は以下。

  • Python 3.10.1
  • plotly 5.4.0
  • plotly-orca 3.4.2

運営者のメガネです。YouTubeTwitterInstagram、自己紹介はこちら、お問い合わせはこちらから。

運営者メガネ

作成したコード全文

マーカーのサイズを変更(一覧表示)

まずはマーカーサイズを変更したグラフから。symbolは以下の7種類を使用、マーカーのサイズは0から30までとした。ただし、0にするとデフォルトの6と同じサイズになることに注意。

  • circle: 円形
  • square: 正方形
  • diamond: ダイヤモンド(菱形)
  • cross: 十字
  • x: バツ
  • triangle-up: 上向きの三角形
  • star: 星

プロットの方法は、まずマーカーサイズsizeを固定してforループ。その中でマーカーシンボルsymbolを指定してforループを回して、sizesymbolを指定した状態でgo.Scatterで散布図を作成している。

そのまま散布図を作成すると凡例の数が全プロット分できてしまうので、一旦showlegend=Falseで凡例の表示をオフに。その後、最後のプロットの凡例だけをオンにしている。

また、各シンボルで一括りのグラフにするためlegendgroupをシンボル名に設定。これで凡例をクリックしたときの表示・非表示がシンボルごとになる。

レイアウトに関しては横軸をシンボル名に変更するためにtickmode, ticktext, tickvalsを指定。縦軸はtitleで軸ラベルを指定した。また、凡例はデフォルトでは右上だが、今回は左下に変更。

import plotly.graph_objects as go
import plotly.io as pio

# マーカーのサイズを変更

# マーカーのサイズ
sizes = range(31)
# シンボルの種類
symbols = (
    'circle',  # 円形
    'square',  # 正方形
    'diamond',  # ダイヤモンド(菱形)
    'cross',  # 十字
    'x',  # バツ
    'triangle-up',  # 上向きの三角形
    'star'  # 星
)
length = len(symbols)  # シンボルの数

plot = []
for y, size in enumerate(sizes):
    for num, symbol in enumerate(symbols):
        d = go.Scatter(
            x=(num,), y=(y,), name=f"{symbol}",
            marker=dict(size=size, symbol=symbol),  # マーカーのサイズとシンボル
            showlegend=False,  # 一旦全てのプロットの凡例を非表示に
            legendgroup=symbol  # 同じシンボルは同じ凡例のグループに入れる
        )
        plot.append(d)

# 最後のプロットの凡例だけ表示するように変更
for num, _ in enumerate(symbols):
    plot[-1 - num]['showlegend'] = True

layout = go.Layout(
    height=1000,  # グラフの高さを高く変更
    xaxis=dict(
        range=(-1, length),  # 横軸の範囲を固定
        # 横軸の目盛表記をシンボル名に変更
        tickmode='array', ticktext=symbols, tickvals=list(range(length))
    ),
    # 縦軸の範囲指定と軸ラベル作成
    yaxis=dict(range=(-1, max(sizes) + 1), title='marker size'),
    # 凡例はグラフ下部に横向きで
    legend=dict(x=0, y=0, yanchor='bottom', orientation='h'),
)

# グラフの表示
fig = go.Figure(data=plot, layout=layout)
fig.show()

# グラフ保存
save_name = 'marker_size_list'
pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
pio.write_html(fig, f"{save_name}.html")
pio.write_image(fig, f"{save_name}.png")

マーカーの枠線の太さを変更(一覧表示)

続いてはマーカーの枠線の太さを変更。変更するのは0から11。大きくしすぎるとマーカー自体のサイズよりも枠線の方が大きくなってしまうからちょうど良さげな値にした。

基本的にはマーカーサイズと同じコードとなる。異なる点は、引数markerの中の引数lineを設定する点。今回は枠線の太さなので引数widthを指定した。

また、枠線の色はデフォルトでは黒っぽい色だが、変更したい場合は引数lineの中の引数colorで好きな色を指定したらいい。

import plotly.graph_objects as go
import plotly.io as pio

# マーカーの枠線の太さ
widths = range(11)
# シンボルの種類
symbols = (
    'circle',  # 円形
    'square',  # 正方形
    'diamond',  # ダイヤモンド(菱形)
    'cross',  # 十字
    'x',  # バツ
    'triangle-up',  # 上向きの三角形
    'star'  # 星
)
length = len(symbols)  # シンボルの数

plot = []
for y, width in enumerate(widths):
    for num, symbol in enumerate(symbols):
        d = go.Scatter(
            x=(num,), y=(y,), name=f"{symbol}",
            marker=dict(
                symbol=symbol,
                size=20,  # マーカーのサイズを大きめに
                line=dict(width=width,),  # 枠線の太さ
            ),
            showlegend=False,  # 一旦全てのプロットの凡例を非表示に
            legendgroup=symbol  # 同じシンボルは同じ凡例のグループに入れる
        )
        plot.append(d)

# 最後のプロットの凡例だけ表示するように変更
for num, _ in enumerate(symbols):
    plot[-1 - num]['showlegend'] = True

layout = go.Layout(
    height=1000,  # グラフの高さを高く変更
    xaxis=dict(
        range=(-1, length),  # 横軸の範囲を固定
        # 横軸の目盛表記をシンボル名に変更
        tickmode='array', ticktext=symbols, tickvals=list(range(length))
    ),
    # 縦軸の範囲指定と軸ラベル作成
    yaxis=dict(range=(-1, max(widths) + 1), title='marker line width'),
    # 凡例はグラフ下部に横向きで
    legend=dict(x=0, y=0, yanchor='bottom', orientation='h'),
)

# グラフの表示
fig = go.Figure(data=plot, layout=layout)
fig.show()

# グラフ保存
save_name = 'marker_linewidth_list'
pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
pio.write_html(fig, f"{save_name}.html")
pio.write_image(fig, f"{save_name}.png")

ラインプロットの線の太さを変更(一覧表示)

続いては線のプロットをした時の線の太さを変更。上のグラフの線の太さが大きい部分だと、もはやプロットする幅が足りなくて波線とかが成り立たなくなっている。

これはさっきのマーカーとは異なって線のプロットとなるので1点だけという指定ができない。今回は左右と中心の合計3点を結んでプロットした。

点だけのプロットの場合はgo.Scatterの引数modeはデフォルトの’marker’でいいけど、線のプロットの場合はmode=’lines’にする必要がある。あとは大体さっきと同じ。

import plotly.graph_objects as go
import plotly.io as pio

# 線の太さ
widths = range(31)
# 線種
dashs = (
    'solid',  # 実線
    'dot',  # 点線
    'dash',  # 破線
    'longdash',  # 長めの破線
    'dashdot',  # 一点鎖線
    'longdashdot',  # 長めの一点鎖線
    '5px,10px,2px,2px'  # 5, 10, 2, 2 pixで線を描画
)
length = len(dashs)  # 線種の数

plot = []
for y, width in enumerate(widths):
    for x, dash in enumerate(dashs):
        d = go.Scatter(
            x=(x - 0.4, x, x + 0.4), y=(y, y, y), name=f"{dash}",
            mode='lines',
            line=dict(dash=dash, width=width),
            showlegend=False,  # 一旦全てのプロットの凡例を非表示に
            legendgroup=dash  # 同じシンボルは同じ凡例のグループに入れる
        )
        plot.append(d)

# 最後のプロットの凡例だけ表示するように変更
for num, _ in enumerate(dashs):
    plot[-1 - num]['showlegend'] = True

layout = go.Layout(
    height=1000,  # グラフの高さを高く変更
    xaxis=dict(
        range=(-1, length),  # 横軸の範囲を固定
        # 横軸の目盛表記をシンボル名に変更
        tickmode='array', ticktext=dashs, tickvals=list(range(length))
    ),
    yaxis=dict(range=(-1, max(widths) + 1), title='line width'),
    # 凡例はグラフ下部に横向きで
    legend=dict(x=0, y=0, yanchor='bottom', orientation='h'),
)

# グラフを表示
fig = go.Figure(data=plot, layout=layout)
fig.show()

# グラフ保存
save_name = 'line_width_list'
pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
pio.write_html(fig, f"{save_name}.html")
pio.write_image(fig, f"{save_name}.png")

マーカー・線の不透明度を変更(一覧表示)

最後はプロットの不透明度opacityを変更したグラフ。不透明度とは0から1の範囲でプロットの色の濃さを示すもの。1だとクッキリハッキリ見える一方で、0に近づくにつれて透明になっていく。

今回はmode=’lines+markers’で線とマーカーの同時使いをした。また、symboldashも使用して、先程までのグラフの組み合わせもしておいた。

残りの部分はさっきと同じ感じだけど、さっきの1プロットは左右+中心。しかし、こうすると中心部分のプロットがマーカーとなってごちゃついたので、ここでは左右だけにした。

import plotly.graph_objects as go
import plotly.io as pio

# 不透明度
opacities = [i / 10 for i in range(11)]
# シンボルの種類
symbols = (
    'circle',  # 円形
    'square',  # 正方形
    'diamond',  # ダイヤモンド(菱形)
    'cross',  # 十字
    'x',  # バツ
    'triangle-up',  # 上向きの三角形
    'star'  # 星
)
dashs = (
    'solid',  # 実線
    'dot',  # 点線
    'dash',  # 破線
    'longdash',  # 長めの破線
    'dashdot',  # 一点鎖線
    'longdashdot',  # 長めの一点鎖線
    '5px,10px,2px,2px'  # 5, 10, 2, 2 pixで線を描画
)
length = len(symbols)  # シンボル(ダッシュ)要素数

plot = []
for y, opacity in enumerate(opacities):
    for x, (symbol, dash) in enumerate(zip(symbols, dashs)):
        d = go.Scatter(
            x=(x - 0.25, x + 0.25), y=(y / 10, y / 10),
            name=f"{symbol} と {dash}",
            mode='lines+markers',  # ラインとマーカーを同時に描画
            marker=dict(symbol=symbol, size=20),
            line=dict(dash=dash, width=3),
            opacity=opacity,  # 不透明度を変更
            showlegend=False,  # 一旦全てのプロットの凡例を非表示に
            # 同じシンボルと線種の組み合わせは同じ凡例のグループに入れる;
            legendgroup=f"{symbol} と {dash}"
        )
        plot.append(d)

# 最後のプロットの凡例だけ表示するように変更
for num, _ in enumerate(dashs):
    plot[-1 - num]['showlegend'] = True

# 横軸用の文字列作成
ticktexts = []
for symbol, dash in zip(symbols, dashs):
    ticktext = f"{symbol}<br>{dash}"
    ticktexts.append(ticktext)
print(ticktexts)
# ['circle<br>solid', 'square<br>dot', 'diamond<br>dash', 'cross<br>longdash', 'x<br>dashdot', 'triangle-up<br>longdashdot', 'star<br>5px,10px,2px,2px']

layout = go.Layout(
    height=1000,  # グラフの高さを高く変更
    xaxis=dict(
        range=(-1, length),  # 横軸の範囲を固定
        # 横軸の目盛表記をシンボル名に変更
        tickmode='array', ticktext=dashs, tickvals=list(range(length))
    ),
    yaxis=dict(range=(-1, len(opacities)), title='line width'),
    # 凡例はグラフ下部に横向きで(yの位置は記事掲載時のいい感じの値にしている)
    legend=dict(x=0, y=0, yanchor='bottom', orientation='h'),
)

# グラフの表示
fig = go.Figure(data=plot, layout=layout)
fig.show()

マーカーのサイズを変更(スライダー表示)


続いては先程のマーカーサイズ一覧をplotlyのスライダーを使用して作成してみる。スライダー機能については以下参照。

【plotly&ボタンとスライダー】goとpxでのupdatemenusとsliders

続きを見る

大枠は一覧作成と同じだけど、以下の点が異なる。

  • 凡例グループlegendgroupの設定を表示・非表示visibleの設定に変更
  • 初期表示をデフォルトの値に該当するplotに設定
  • スライダーで各サイズに該当するplotのみを表示して、それ以外を非表示に
  • go.Layoutにスライダー情報slidersを設定

スライダー機能でプロットの切り替えをするってのは、各スライダーに該当するプロットだけを表示することに等しい。ここでは一旦全てのプロットのvisibleをFalse、非表示にしてから該当するプロットだけをvisible=Trueで表示するようにしている。

なお、forループはマーカーサイズを初めに持ってきているので、visibleTrueにするときはvisible[size * length: (size + 1) * length]で各サイズ x シンボルの数ごとに設定する必要がある。

もちろん一括で= [True] * lengthとせずに1プロットずつTrueに変更してもいい。

import plotly.graph_objects as go
import plotly.io as pio

# マーカーのサイズ
sizes = range(31)
# シンボルの種類
symbols = (
    'circle',  # 円形
    'square',  # 正方形
    'diamond',  # ダイヤモンド(菱形)
    'cross',  # 十字
    'x',  # バツ
    'triangle-up',  # 上向きの三角形
    'star'  # 星
)
length = len(symbols)  # シンボルの数

plot = []
for size in sizes:
    for x, symbol in enumerate(symbols):
        d = go.Scatter(
            x=(x,), y=(0,), name=f"{symbol}",
            marker=dict(size=size, symbol=symbol),
            visible=False  # 一旦全てのプロットを非表示に
        )
        plot.append(d)

# 初期表示のプロットだけ表示するように変更
default = 6  # symbol sizeのデフォルト値
for num, _ in enumerate(symbols):
    plot[default * length + num]['visible'] = True

steps = []
for size in sizes:
    # 一旦すべてのプロットを非表示に
    visible = [False] * len(plot)
    # 各マーカーサイズのスライダーに該当するプロットだけ表示に変更
    visible[size * length: (size + 1) * length] = [True] * length

    step = dict(
        method='update', label=size,
        args=[
            dict(visible=visible),  # 表示・非表示の設定
            dict(title=f"marker size = {size}",)  # 各スライダーのグラフタイトル
        ],
    )
    steps.append(step)

# レイアウトにスライダーを設置
sliders = [
    dict(
        active=default, steps=steps,
        currentvalue=dict(prefix='size='),  # スライダーの上の現在値部分の接頭辞
    )
]
layout = go.Layout(
    xaxis=dict(
        range=(-1, length),  # 横軸の範囲を固定
        # 横軸の目盛表記をシンボル名に変更
        tickmode='array', ticktext=symbols, tickvals=list(range(length))
    ),
    # 凡例はグラフ下部に横向きで
    legend=dict(x=0, y=0, yanchor='bottom', orientation='h'),
    sliders=sliders,  # スライダー情報
)

# グラフの表示
fig = go.Figure(data=plot, layout=layout)
fig.show()

# グラフ保存
save_name = 'marker_size_slider'
pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
pio.write_html(fig, f"{save_name}.html")
pio.write_image(fig, f"{save_name}.png")

マーカーの枠線の太さを変更(スライダー表示)


マーカーの枠線の太さの変更も、サイズ変更と同じようにスライダー化することが可能。サイズ変更が単に枠線の太さ変更になっただけ。

枠線の太さのデフォルト値は1なので、変数defaultとスライダーslidersの引数activeを1に。これで初期表示を枠線の太さ=1の状態にできる。

import plotly.graph_objects as go
import plotly.io as pio

# マーカーの枠線の太さ
widths = range(10)
# シンボルの種類
symbols = (
    'circle',  # 円形
    'square',  # 正方形
    'diamond',  # ダイヤモンド(菱形)
    'cross',  # 十字
    'x',  # バツ
    'triangle-up',  # 上向きの三角形
    'star'  # 星
)
length = len(symbols)  # シンボルの数

plot = []
for width in widths:
    for x, symbol in enumerate(symbols):
        d = go.Scatter(
            x=(x,), y=(0,), name=f"{symbol}",
            marker=dict(
                symbol=symbol,
                opacity=0.5,  # マーカーをちょっと透明に
                size=50,  # マーカーのサイズを大きめに
                line=dict(width=width,),
            ),
            visible=False  # 一旦全てのプロットを非表示に
        )
        plot.append(d)

# 初期表示のプロットだけ表示するように変更
default = 1  # symbol line widthのデフォルト値はないからとりあえず1に
for num, _ in enumerate(symbols):
    plot[default * length + num]['visible'] = True

steps = []
for width in widths:
    # 一旦すべてのプロットを非表示に
    visible = [False] * len(plot)
    # 各マーカーの枠線太さのスライダーに該当するプロットだけ表示に変更
    visible[width * length: (width + 1) * length] = [True] * length

    step = dict(
        method='update', label=width,
        args=[
            dict(visible=visible),  # 表示・非表示の設定
            # 各スライダーのグラフタイトル
            dict(title=f"marker line width = {width}",)
        ],
    )
    steps.append(step)

# レイアウトにスライダーを設置
sliders = [
    dict(
        active=default, steps=steps,
        currentvalue=dict(prefix='width='),  # スライダーの上の現在値部分の接頭辞
    )
]
layout = go.Layout(
    xaxis=dict(
        range=(-1, length),  # 横軸の範囲を固定
        # 横軸の目盛表記をシンボル名に変更
        tickmode='array', ticktext=symbols, tickvals=list(range(length))
    ),
    # 凡例はグラフ下部に横向きで
    legend=dict(x=0, y=0, yanchor='bottom', orientation='h'),
    sliders=sliders,  # スライダー情報
)

# グラフの表示
fig = go.Figure(data=plot, layout=layout)
fig.show()

# グラフ保存
save_name = 'marker_linewidth_slider'
pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
pio.write_html(fig, f"{save_name}.html")
pio.write_image(fig, f"{save_name}.png")

ラインプロットの線の太さを変更(スライダー表示)


ラインプロットの線の太さ変更も同じようにスライダーで描ける。ただ、一覧表示の時よりも使う面積が小さいので縦軸にdashを持ってくるスタイルに変更。

こうすることで、横長のグラフと太くなった線の兼ね合いがうまくいってキレイに見えるようになる。

import plotly.graph_objects as go
import plotly.io as pio

# 線の太さ
widths = range(31)
# 線種
dashs = (
    'solid',  # 実線
    'dot',  # 点線
    'dash',  # 破線
    'longdash',  # 長めの破線
    'dashdot',  # 一点鎖線
    'longdashdot',  # 長めの一点鎖線
    '5px,10px,2px,2px'  # 5, 10, 2, 2 pixで線を描画
)
length = len(dashs)  # 線種の数

plot = []
for width in widths:
    for y, dash in enumerate(dashs):
        d = go.Scatter(
            x=(0, 1), y=(y, y), name=f"{dash}",
            mode='lines',
            line=dict(dash=dash, width=width),
            visible=False  # 一旦全てのプロットを非表示に
        )
        plot.append(d)

# 初期表示のプロットだけ表示するように変更
default = 2  # line widthのデフォルト値
for num, _ in enumerate(dashs):
    plot[default * length + num]['visible'] = True

steps = []
for width in widths:
    # 一旦すべてのプロットを非表示に
    visible = [False] * len(plot)
    # 各線の太さのスライダーに該当するプロットだけ表示に変更
    visible[width * length: (width + 1) * length] = [True] * length

    step = dict(
        method='update', label=width,
        args=[
            dict(visible=visible),  # 表示・非表示の設定
            dict(title=f"line width = {width}",)  # 各スライダーのグラフタイトル
        ],
    )
    steps.append(step)

# レイアウトにスライダーを設置
sliders = [
    dict(
        active=default, steps=steps,
        currentvalue=dict(prefix='width='),  # スライダーの上の現在値部分の接頭辞
    )
]
layout = go.Layout(
    height=1000,
    yaxis=dict(
        range=(-1, length),  # 横軸の範囲を固定
        # 横軸の目盛表記をダッシュ名に変更
        tickmode='array', ticktext=dashs, tickvals=list(range(length))
    ),
    # 凡例はグラフ下部に横向きで
    legend=dict(x=0, y=-0.3, yanchor='bottom', orientation='h'),
    sliders=sliders,  # スライダー情報
)

# グラフを表示
fig = go.Figure(data=plot, layout=layout)
fig.show()

# グラフ保存
save_name = 'line_width_slider'
pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
pio.write_html(fig, f"{save_name}.html")
pio.write_image(fig, f"{save_name}.png")

マーカー・線の不透明度を変更(スライダー表示)


最後は不透明度の変更。こちらもプロットで使う面積が小さくなるので一覧表示とは表示の仕方を変更している。

マーカーについては両橋の2点だけだと寂しかったので、間にも追加して合計6点とした。

import plotly.graph_objects as go
import plotly.io as pio

# マーカーと線の透明度を変更

# 不透明度
opacities = [i / 10 for i in range(11)]
# シンボルの種類
symbols = (
    'circle',  # 円形
    'square',  # 正方形
    'diamond',  # ダイヤモンド(菱形)
    'cross',  # 十字
    'x',  # バツ
    'triangle-up',  # 上向きの三角形
    'star'  # 星
)
dashs = (
    'solid',  # 実線
    'dot',  # 点線
    'dash',  # 破線
    'longdash',  # 長めの破線
    'dashdot',  # 一点鎖線
    'longdashdot',  # 長めの一点鎖線
    '5px,10px,2px,2px'  # 5, 10, 2, 2 pixで線を描画
)
length = len(symbols)  # シンボル(ダッシュ)要素数

plot = []
for opacity in opacities:
    for x, (symbol, dash) in enumerate(zip(symbols, dashs)):

        d = go.Scatter(
            x=(0, 0.2, 0.4, 0.6, 0.8, 1), y=(x, x, x, x, x, x),
            name=f"{symbol} と {dash}",
            mode='lines+markers',  # ラインとマーカーを同時に描画
            marker=dict(symbol=symbol, size=20),
            line=dict(dash=dash, width=3),
            opacity=opacity,  # 不透明どを変更
            visible=False  # 一旦全てのプロットを非表示に
        )
        plot.append(d)

# 初期表示のプロットだけ表示するように変更
# 適当にopacity=0.2に設定
for num, _ in enumerate(symbols):
    plot[2 * length + num]['visible'] = True

steps = []
for num, opacity in enumerate(opacities):
    # 一旦すべてのプロットを非表示に
    visible = [False] * len(plot)
    # 各マーカーサイズのスライダーに該当するプロットだけ表示に変更
    visible[num * length: (num + 1) * length] = [True] * length

    step = dict(
        method='update', label=opacity,
        args=[
            dict(visible=visible),  # 表示・非表示の設定
            dict(title=f"opacity = {opacity}",)  # 各スライダーのグラフタイトル
        ],
    )
    steps.append(step)

# レイアウトにスライダーを設置
sliders = [
    dict(
        active=2, steps=steps,
        currentvalue=dict(prefix='opacity='),  # スライダーの上の現在値部分の接頭辞
    )
]
# 横軸用の文字列作成
ticktexts = []
for symbol, dash in zip(symbols, dashs):
    ticktext = f"{symbol}<br>{dash}"
    ticktexts.append(ticktext)
print(ticktexts)
# ['circle<br>solid', 'square<br>dot', 'diamond<br>dash', 'cross<br>longdash', 'x<br>dashdot', 'triangle-up<br>longdashdot', 'star<br>5px,10px,2px,2px']

layout = go.Layout(
    height=1000,
    yaxis=dict(
        range=(-1, length),  # 横軸の範囲を固定
        # 横軸の目盛表記をシンボル名とダッシュ名に変更(brやぐで改行している)
        tickmode='array', ticktext=ticktexts,
        tickvals=list(range(length))
    ),
    # 凡例はグラフ下部に横向きで(yの位置は記事掲載時のいい感じの値にしている)
    legend=dict(x=0, y=-0.3, yanchor='bottom', orientation='h'),
    sliders=sliders,  # スライダー情報
)

# グラフの表示
fig = go.Figure(data=plot, layout=layout)
fig.show()

# グラフ保存
save_name = 'opacity_slider'
pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
pio.write_html(fig, f"{save_name}.html")
pio.write_image(fig, f"{save_name}.png")

一覧があると確認し放題

ということで、今回はplotlyのマーカーのサイズや線の太さ一覧グラフを作成した。これで下手に値で悩む必要が減るだろう。

matplotlib, pltだとメジャーなのでいろんなサイトで今回のようなグラフがあるけど、plotlyはまだまだマイナーなのか、そんなサイトが少ないか無い。

本記事を参考にして、各人のグラフをより効率的に作成していただければ幸いだ。

関連記事

Plotly全般

【plotly&fig作成と更新】add_traceやupdate_layoutの使い方

2022/8/19

こんな人にオススメ plotlyでグラフを& ...

Plotly全般

【plotly&size, width】Scatterのサイズやlineの太さ一覧表を作成

2022/8/19

こんな人にオススメ plotlyのScatterのマー ...

Plotly全般

【plotly&legendまとめ】凡例の引数一覧

2022/8/19

こんな人にオススメ plotlyのlayoutの引数leg ...

Plotly全般

【plotly&pattern】棒グラフとかのパターンまとめ

2022/8/19

こんな人にオススメ plotlyの棒グラフ& ...

ガジェット

2023/9/18

【デスクツアー2022下半期】モノは少なく、でも効率的に Desk Updating #0

今回はガジェットブロガーなのにデスク環境を構築していない執筆者の ...

ライフハック

2023/9/16

【Audible vs YouTube Premium】耳で聴く音声学習コンテンツを比較

ワイヤレスイヤホンが普及し耳で学習することへのハードルが格段に下 ...

完全ワイヤレスイヤホン(TWS)

2023/9/18

【SENNHEISER MOMENTUM True Wireless 3レビュー】全てが整ったイヤホン

今回は高音質・高機能なSENNHEISERのフラグシップ完全ワイヤレスイヤホン「SENNH ...

ライフハック

2023/3/11

【YouTube Premiumとは】メリットしかないから全員入れ

今回はYouTube Premiumを実際に使ってみてどうなのか、どんなメリット/デメリット ...

マウス

2023/8/17

【Logicool MX ERGOレビュー】疲れない作業効率重視トラックボールマウス

こんな人におすすめ トラックボールマウスの王道Logicool MX ERGOが気になるけどऩ ...

ベストバイ

2023/9/18

【ベストバイ2022】今年買って良かったモノのトップ10

2022年ベストバイ この1年を振り返って執筆者は何を買ったのか。ガジェッ& ...

スマホ

2023/1/15

【楽天モバイル×povo2.0の併用】月1,000円の保険付きデュアルSIM運用

こんな人におすすめ 楽天モバイルとpovo2.0のデュアルSIM運用って実際のとこ ...

マウス

2023/9/16

【Logicool MX ERGO vs MX Master 3】ERGOをメインにした決定的な理由

こんな疑問・お悩みを持っている人におすすめ 執筆者はLogicoolのハイエンӠ ...

macOSアプリケーション

2022/9/30

【Chrome拡張機能】便利で効率的に作業できるおすすめの拡張機能を18個紹介する

こんな人におすすめ Chromeの拡張機能を入れたいけど、調べても同じような ...

macOSアプリケーション

2023/5/3

【Automator活用術】Macで生産性を上げる作業の自動化術

今回はMacに標準でインストールされているアプリ「Automator」を使ってできる ...

Pythonを学びたいけど独学できる時間なんてない人へのすゝめ

執筆者は大学の研究室・大学院にて独学でPythonを習得した。

でも社会人になったら独学で行うには時間も体力もなくて大変だ。

時間がない社会人だからこそプロの教えを乞うのが効率的。

ここでは色んなタイプに合ったプログラミングスクールの紹介をする。

  • この記事を書いた人

メガネ

Webエンジニア駆け出し。独学のPythonで天文学系の大学院を修了。常時金欠のガジェット好きでM2 Pro MacBook Pro(30万円) x Galaxy S22 Ultra(17万円)使いの狂人。自己紹介と半生→変わって楽しいの繰り返しレビュー依頼など→お問い合わせ運営者情報、TwitterX@m_ten_pa、 YouTube@megatenpa、 Threads@megatenpa

-Plotly全般
-, , ,