スタックドエリアチャート

import plotly.graph_objects as go
import numpy as np

# データの準備
x = ['A', 'B', 'C', 'D']
y1 = np.array([10, 20, -30, 40])  # 1つ目の系列
y2 = np.array([-15, 25, -5, 20])  # 2つ目の系列

# 正の値のみを抽出
y1_positive = np.where(y1 > 0, y1, 0)
y2_positive = np.where(y2 > 0, y2, 0)

# 負の値のみを抽出
y1_negative = np.where(y1 < 0, y1, 0)
y2_negative = np.where(y2 < 0, y2, 0)

# トレースの作成(正の値)
trace1_positive = go.Scatter(x=x, y=y1_positive, fill='tozeroy', mode='none', name='Series 1 Positive', stackgroup='positive')
trace2_positive = go.Scatter(x=x, y=y2_positive, fill='tonexty', mode='none', name='Series 2 Positive', stackgroup='positive')

# トレースの作成(負の値)
trace1_negative = go.Scatter(x=x, y=y1_negative, fill='tozeroy', mode='none', name='Series 1 Negative', stackgroup='negative')
trace2_negative = go.Scatter(x=x, y=y2_negative, fill='tonexty', mode='none', name='Series 2 Negative', stackgroup='negative')

# フィギュアの作成とトレースの追加
fig = go.Figure()

# 正のトレースを追加
fig.add_trace(trace1_positive)
fig.add_trace(trace2_positive)

# 負のトレースを追加
fig.add_trace(trace1_negative)
fig.add_trace(trace2_negative)

# グラフのタイトルと軸のラベル設定
fig.update_layout(title='Stacked Area Chart with Separated Positive and Negative Values', xaxis_title='X', yaxis_title='Y')

# グラフの表示
fig.show()

このコードは、正の値と負の値を分離して積み上げたエリアチャートをPlotlyを使用して描画する方法を示しています。このブログ記事では、その手順と重要なポイントを詳しく解説します。

スタックドエリアチャートの基本

スタックドエリアチャートは、複数のデータ系列が時間の経過とともにどのように変化するかを視覚化するのに適したチャートです。積み上げられたエリアは、全体のトレンドを理解するのに役立ちます。しかし、正の値と負の値が混在する場合、それらを区別して表示することが重要になります。これにより、データの動向がより明確に把握できます。

使用するデータ

この例では、2つのデータ系列を用意しています。それぞれy1y2で、4つのカテゴリ(A, B, C, D)に対する値を含んでいます。これらの系列には正の値も負の値も含まれており、それらを分離して表示することを目指します。

正の値と負の値の分離

まず、numpy.where関数を使用して、各系列の正の値と負の値を分離します。この関数は、条件に基づいて配列の要素を選択するのに非常に便利です。ここでは、正の値はそのまま、負の値は0に置き換える(負の値の場合はその逆)ことで、正の値と負の値のエリアを別々に描画できるようにしています。

Plotlyによる描画

PlotlyのScatterトレースを使用して、正の値と負の値のエリアをそれぞれ描画します。fill='tozeroy'は、エリアチャートの下部をx軸(値0)まで塗りつぶすことを意味します。stackgroupパラメータは、積み上げるエリアを指定するのに使用します。ここでは、正の値用に'positive'グループ、負の値用に'negative'グループを定義しています。

グラフのカスタマイズ

最後に、update_layoutメソッドを使用して、グラフのタイトル、x軸、y軸のラベルを設定します。これにより、グラフがどのようなデータを表しているのかを一目で理解できるようになります。

結論

この方法を使用することで、正の値と負の値を明確に区分して表示するスタックドエリアチャートを簡単に作成できます。Plotlyの強力な可視化機能を活用することで、データの洞察をより深めることができます。
以上で、正の値と負の値を分離して表示するスタックドエリアチャートの作成方法についての説明を終わります。この手法を使って、あなたのデータを新たな角度から見てみましょう。


この記事が気に入ったらサポートをしてみませんか?