stem【ステムプロット】3.1 / 3.4 / 3.5 / 3.6
メモ ( 基本 データの指定方法 スタイルの指定方法 関連設定 関連 外部リンク ) 構文 設定・グラフパーツ 例
メモ

基本
〔 例 〕- ステム (stem:茎・幹) をプロット
- プロット方向:orientation (ステムラインの方向) 3.4
データの指定方法
〔 例 〕- locs (垂直ステムのx位置) (省略可) と heads (垂直ステムのy位置)に 値を指定
- locs (垂直ステムのx位置)・heads (垂直ステムのy位置) にラベル名を指定
data (ラベル名指定データ)に対応するラベル名と値を指定
(その他の引数も同様に設定可能)
スタイルの指定方法
〔 例 〕- 引数で指定
- その他(上記を含む)の指定は、戻り値の各要素のプロパティを設定
- 戻り値:StemContainer【ステム コンテナ】を下記の tuple【タプル型】で参照
・markerline (マーカー) :Line2D 形式 (中抜き・白抜き等は、マーカー定義参照)
・stemlines (ステムライン) :LineCollection または list( Line2D ) 形式
・baseline (ベースライン):Line2D 形式 - プロパティは下記で設定
set_プロパティ名【プロパティ設定 (個別)】メソッド
set【プロパティ設定 (一括)】メソッド
pyplot.setp【プロパティ設定】関数
- 戻り値:StemContainer【ステム コンテナ】を下記の tuple【タプル型】で参照
関連設定
〔 例 〕- タイトル・凡例・目盛り等:設定・グラフパーツ 参照
関連
外部リンク
構文
matplotlib.pyplot.stem(
*args (配列形式:x位置 ・ 配列形式:y位置)※data,
linefmt (str:ステムライン スタイル)※data =None,
markerfmt (str:マーカー スタイル)※data =None,
basefmt (str:ベースライン スタイル)※data =None,
bottom (float:ベースライン位置)※data =0,
label (str:凡例用ラベル)※data =None,
use_line_collection (bool:LineCollection 使用有無)3.13.6 ※data =FalseTrue3.3,
orientation (str:ステムライン 方向)3.4 ※data ='vertical',
data (ラベル名指定データ)=None)
matplotlib.axes.Axes.stem(同上)
戻り値StemContainer【ステム コンテナ】
(markerline, stemlines, baseline) の tuple【タプル型】として参照可
markerline (Line2D)マーカー (マーカー間の線分を含む)
stemlines (LineCollection | list(Line2D))ステムライン (形式は、use_line_collection による)
baseline (Line2D)ベースライン
args (可変長位置引数)[locs,] heads
locs (配列形式)※data垂直ステムのx位置 (水平ステムのy位置)
省略(0, 1, 2, ...)
heads (配列形式)※data垂直ステムのy位置 (水平ステムのx位置)
linefmt (str)※dataステムライン(デフォルト:垂直線)のスタイルフォーマット文字列 (省略:'C0-')
(use_line_collectionがTrueの場合、簡易マーカースタイル は無視)
markerfmt (str)※dataマーカーのスタイルフォーマット文字列 (省略:'C0o''o'3.6 )
(色が未指定の場合、linefmt (ステムライン フォーマット)から取得 3.6 )
basefmt (str)※dataベースラインのスタイルフォーマット文字列 (省略:'C3-')
bottom (float:キーワード引数)※dataベースラインのy(x)位置
label (str:キーワード引数)※data凡例用ラベル
use_line_collection (bool:キーワード引数)3.13.6 ※dataステムライン用に LineCollection の使用有無
True 3.3使用 (新方式:パフォーマンス向上)
False未使用 (旧方式:list(Line2D))
orientation (str:キーワード引数)3.4 ※dataステムラインの方向
'vertical'垂直方向
'horizontal'水平方向
data (インデックス可能オブジェクト:キーワード引数)ラベル名指定データ (data['~']として参照)
(※data:ラベル名指定可・詳細は、データの指定方法 参照・全ての引数が対象)
※ 下記は文法的にキーワード引数になるが、位置引数として指定可
linefmt (ステムライン フォーマット) (位置引数は非推奨3.53.6 )
markerfmt (マーカー フォーマット) (位置引数は非推奨3.5 )
basefmt (ベースライン フォーマット) (位置引数は非推奨3.5 )
スタイルフォーマット文字列
'[簡易marker (マーカースタイル)][簡易line (線種)][簡易color (色)]'
※:順不同
簡易マーカースタイル
- マーカースタイルの簡易指定
簡易marker | マーカースタイル | |
---|---|---|
. (ドット) | ![]() | ポイント point marker |
, (カンマ) | ![]() | ピクセル pixel marker |
o (オー) | ![]() | 円 circle marker |
v (ブイ) | ![]() | 三角形 (下向き) triangle_down marker |
^ (山型アクセント記号) | ![]() | 三角形 (上向き) triangle_up marker |
< | ![]() | 三角形 (左向き) triangle_left marker |
> | ![]() | 三角形 (右向き) triangle_right marker |
1 | ![]() | 三芒星 (下向き) tri_down marker |
2 | ![]() | 三芒星 (上向き) tri_up marker |
3 | ![]() | 三芒星 (左向き) tri_left marker |
4 | ![]() | 三芒星 (右向き) tri_right marker |
8 3.4 | ![]() | 八角形 octagon |
s | ![]() | 四角形 square marker |
p | ![]() | 五角形 pentagon marker |
P 3.4 | ![]() | プラス記号 (塗りつぶし) plus (filled) marker |
* | ![]() | 星印 star marker |
h | ![]() | 六角形 (1) hexagon1 marker |
H | ![]() | 六角形 (2) hexagon2 marker |
+ | ![]() | プラス記号 plus marker |
x | ![]() | バツ印 x marker |
X 3.4 | ![]() | バツ印 (塗りつぶし) x (filled) marker |
D | ![]() | ダイヤモンド diamond marker |
d | ![]() | ダイヤモンド (縦長) thin_diamond marker |
| | ![]() | 垂直線 vline marker |
_ (アンダースコア) | ![]() | 水平線 hline marker |
簡易線種
- 線スタイルの簡易指定
簡易line | 線種 | |
---|---|---|
- | ![]() | 実線 |
-- | ![]() | 破線 dashed line style |
-. | ![]() | 一点鎖線 dash-dot line style |
: | ![]() | 点線 dotted line style |
簡易色
- 線とマーカーの色の簡易指定
color | 備考 | ||
---|---|---|---|
b | blue | 詳細は 色名の省略形 (1文字) 参照 | |
g | green | ||
r | red | ||
c | cyan | ||
m | magenta | ||
y | yellow | ||
k | key (black) | ||
w | white | ||
Cn | ― | CNカラー (n:色番号) 詳細は CN カラー 参照 簡易marker (マーカースタイル)の数字指定との組合せに注意 | |
その他 | ― | 色の単独指定の場合、全ての 色定義 の指定が可能 |
設定・グラフパーツ
pyplot. | axes.Axes. | その他 | |
---|---|---|---|
タイトル | suptitle【タイトル設定 (全体)】 title【タイトル設定】 | set_title【タイトル設定】 get_title【タイトル取得】 Axes3D.set_title【タイトル設定】 | figure.Figure.suptitle【タイトル設定 (全体)】 figure.SubFigure.suptitle figure.Figure.align_titles【タイトル調整】3.9 |
凡例 | legend【凡例 設定】3.5 / 3.7 / 3.8 quiverkey【ベクトルの凡例 追加】 | figure.Figure.legend【凡例 設定 (全体)】3.7 / 3.8 PathCollection.legend_elements【凡例項目作成】 | |
get_legend【凡例 取得】 get_legend_handles_labels【凡例 取得 (ハンドル・ラベル)】 | |||
軸ラベル | xlabel【x軸ラベル 設定】3.3 ylabel【y軸ラベル 設定】3.3 | set_xlabel【x軸ラベル 設定】3.3 set_ylabel【y軸ラベル 設定】3.3 Axes3D.set_zlabel【z軸ラベル 設定】 get_xlabel【x軸ラベル 取得】 get_ylabel【y軸ラベル 取得】 Axes3D.get_zlabel【z軸ラベル 取得】 | align_labels【ラベル調整】 figure.Figure.supxlabel【x軸ラベル(全体) 設定】3.43.6 figure.Figure.supylabel【y軸ラベル(全体) 設定】3.43.6 figure.SubFigure.supxlabel figure.SubFigure.supylabel projections.polar.PolarAxes.set_rlabel_position【半径ラベルのシータ位置設定】 |
clabel【等高線ラベル 設定】 | |||
グリッド線 | grid【グリッド線 設定】3.5 | grid【グリッド線 設定】3.5 get_xgridlines【x軸グリッド線 取得】 get_ygridlines【y軸グリッド線 取得】 (Axes3D.grid【3Dグリッド線 取得・設定】) Axes3D.get_zgridlines【z軸グリッド線 取得】 | axis.Axis.grid【軸グリッド線 設定】3.5 axis.Axis.get_gridlines【軸グリッド線 取得】 |
triplot【三角形分割】 | |||
rgrids【放射状グリッド線 取得・設定】 thetagrid【放射状シータグリッド線 取得・設定】 | projections.polar.PolarAxes.set_rgrids【放射状グリッド線 設定】 projections.polar.PolarAxes.set_thetagrid【放射状シータグリッド線 設定】 | ||
表示範囲 | xlim【x軸表示範囲 取得・設定】 ylim【y軸表示範囲 取得・設定】 axis【表示範囲等 取得・設定】3.1~3.4 / 3.7 | set_xlim【x軸表示範囲 設定】3.1 / 3.6 set_ylim【y軸表示範囲 設定】3.1 / 3.6 get_xlim【x軸表示範囲 取得】 get_ylim【y軸表示範囲 取得】 axis【表示範囲等 取得・設定】3.1~3.4 / 3.7 | projections.polar.PolarAxes.set_rlim【極座標範囲 設定】 |
Axes3D.set_xlim【3D x軸表示範囲 設定】 Axes3D.set_xlim3d【3D x軸表示範囲 設定】 Axes3D.set_ylim【3D y軸表示範囲 設定】 Axes3D.set_ylim3d【3D y軸表示範囲 設定】 Axes3D.set_zlim【3D z軸表示範囲 設定】 Axes3D.set_zlim3d【3D z軸表示範囲 設定】 Axes3D.get_xlim3d【3D x軸表示範囲 取得】 Axes3D.get_ylim3d【3D y軸表示範囲 取得】 Axes3D.get_zlim3d【3D z軸表示範囲 取得】 | |||
データ上限・下限 | set_xbound【x軸データ上限・下限 設定】 set_ybound【y軸データ上限・下限 設定】 get_xbound【x軸データ上限・下限 取得】 get_ybound【y軸データ上限・下限 取得】 | projections.polar.PolarAxes.set_rmax【極座標上限 設定】 projections.polar.PolarAxes.set_rmin【極座標下限 設定】 | |
目盛り | xticks【x軸目盛り (ラベル) 取得・設定】3.6 yticks【y軸目盛り (ラベル) 取得・設定】3.6 locator_params【目盛り制御】 minorticks_on minorticks_off ticklabel_format【目盛りフォーマット設定 (指数形式)】 tick_params【目盛り・グリッド線 外観変更】 | set_xticks【x軸目盛り 設定】3.2 / 3.5 set_yticks【y軸目盛り 設定】3.2 / 3.5 Axes3D.set_zticks【z軸目盛り 設定】 set_xticklabels【x軸目盛りラベル 設定】3.3 / 3.5 set_yticklabels【y軸目盛りラベル 設定】3.3 / 3.5 Axes3D.set_zticklabels【z軸目盛りラベル 設定】 get_xticks【x軸目盛り 取得】3.2 get_yticks【y軸目盛り 取得】3.2 Axes3D.get_zticks【z軸目盛り 取得】 get_xticklabels【x軸目盛りラベル 取得】3.3 / 3.6 get_yticklabels【y軸目盛りラベル 取得】3.3 / 3.6 Axes3D.get_zticklabels【z軸目盛りラベル 取得】 get_xmajorticklabels【x軸目盛りラベル 取得 (主)】3.3 / 3.6 get_ymajorticklabels【y軸目盛りラベル 取得 (主)】3.3 / 3.6 get_xminorticklabels【x軸目盛りラベル 取得 (補助)】3.3 / 3.6 get_yminorticklabels【y軸目盛りラベル 取得 (補助)】3.3 / 3.6 get_xticklines get_yticklines xaxis_date yaxis_date minorticks_on minorticks_off ticklabel_format【目盛りフォーマット設定 (指数形式)】 tick_params【目盛り・グリッド線 外観変更】 locator_params【目盛り制御】 fmt_xdata fmt_ydata | ticker【目盛りモジュール】 axis.Axis.set_ticks【目盛り 設定】 axis.Axis.set_ticklabels【目盛りラベル 設定】 axis.Axis.set_tick_params【目盛り・グリッド線 外観変更】 axis.XAxis.set_ticks_position【x軸目盛り位置 設定】 axis.YAxis.set_ticks_position【y軸目盛り位置 設定】 Axes3D.locator_params【目盛り制御】 axis.Axis.set_major_formatter【フォーマッタ設定 (主)】 axis.Axis.set_minor_formatter【フォーマッタ設定 (補助)】 axis.Axis.set_major_locator【ロケータ設定 (主)】 axis.Axis.set_minor_locator【ロケータ設定 (補助)】 axis.Axis.get_ticklabels【目盛りラベル取得】 axis.Axis.get_majorticklabels【目盛りラベル取得 (主)】 axis.Axis.get_minorticklabels【目盛りラベル取得 (補助)】 axis.Axis.get_major_formatter【フォーマッタ取得 (主)】 axis.Axis.get_minor_formatter【フォーマッタ取得 (補助)】 axis.Axis.get_ticklocs axis.Axis.get_major_locator【ロケータ取得 (主)】 axis.Axis.get_minor_locator【ロケータ取得 (補助)】 figure.Figure.autofmt_xdate【x軸日付目盛りラベル回転】 axis.Axis.get_tick_params【目盛り・グリッド線 外観取得】3.7 |
直線 範囲 | axhline【水平線 (単一)】3.9 axvline【垂直線 (単一)】 hlines【水平線 (複数)】3.3 vlines【垂直線 (複数)】3.3 axhspan【水平範囲】3.9 axvspan【垂直範囲】3.9 axline【直線】3.3 |
例
基本
import matplotlib.pyplot as plt
import numpy as np
# 初期設定
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = \
['Yu Gothic', 'Hiragino Maru Gothic Pro', 'Noto Sans CJK JP']
x = np.linspace(0, 2 * np.pi, 21)
y = np.sin(x)
fig, axs = plt.subplots(
1, 2,
figsize=(6, 3),
tight_layout=True,
)
# 垂直ステム
axs[0].set_title('垂直ステム (デフォルト)')
axs[0].stem(x, y)
# 水平ステム
axs[1].set_title('水平ステム')
axs[1].stem(
x, y,
orientation='horizontal',
)
# 表示
plt.show()
データの指定方法
import matplotlib.pyplot as plt
import numpy as np
# 初期設定
fig, axs = plt.subplots(
1, 2,
figsize=(6, 3),
tight_layout=True,
)
x = np.linspace(0, 2 * np.pi, 21)
y = np.sin(x)
# stem (値指定)
axs[0].stem(
x,
y,
linefmt='r:',
markerfmt='gD',
basefmt='b--',
)
# stem (ラベル指定)
axs[1].stem(
'label_locs',
'label_heads',
linefmt='label_linefmt',
markerfmt='label_markerfmt',
basefmt='label_basefmt',
bottom='label_bottom',
label='label_label',
use_line_collection='label_use_LC',
orientation='label_orientation',
data={
'label_locs': x,
'label_heads': y,
'label_linefmt': 'b:',
'label_markerfmt': 'rs',
'label_basefmt': 'g--',
'label_bottom': -1.0,
'label_label': 'LABEL',
'label_use_LC': False,
'label_orientation': 'horizontal',
},
)
axs[1].legend()
# 表示
plt.show()
スタイルの指定方法
import matplotlib.pyplot as plt
# 初期設定
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = \
['Yu Gothic', 'Hiragino Maru Gothic Pro', 'Noto Sans CJK JP']
fig, axs = plt.subplots(
1, 3,
figsize=(9, 3),
tight_layout=True,
)
heads = [1, 3, 2, 5, 4, 1, 3, 4, 1]
# stem (左)
axs[0].stem(
heads,
linefmt='g:',
markerfmt='rD',
basefmt='b--',
)
# stem (中央)
markerline, stemlines, baseline = axs[1].stem(
heads,
)
# set_*()
markerline.set_markersize(12)
markerline.set_marker('*')
markerline.set_color('red')
# set()
stemlines.set(
linewidth=3,
linestyle=':',
color='green',
)
# plt.setp()
plt.setp(
baseline,
linewidth=3,
linestyle='--',
color='blue',
)
# stem (右)
markerline, stemlines, baseline = axs[2].stem(
heads,
)
# マーカー (Line2D)
markerline.set(
marker='D',
markersize=8,
markeredgecolor='red',
markeredgewidth=2,
markerfacecolor='white',
linestyle=':',
linewidth=2,
)
# ステムライン (LineCollection)
stemlines.set(
linewidth=3,
colors=['r', 'g', 'b'],
linestyles=['-', '--', '-.', ':'],
)
# ベースライン (Line2D)
baseline.set(
linewidth=2,
color='blue',
markersize=8,
marker='o',
)
# 表示
plt.show()
設定・グラフパーツ
import matplotlib.pyplot as plt
import numpy as np
# 初期設定
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] =\
['Yu Gothic', 'Hiragino Maru Gothic Pro', 'Noto Sans CJK JP']
fig, axs = plt.subplots(
2,
1,
figsize=(8, 8),
tight_layout=True,
)
plt.suptitle('suptitle【タイトル (全体)】')
# データ
x_sin = np.linspace(0, 2 * np.pi, 21)
y_sin = np.sin(x_sin)
x_cos = np.linspace(2 * np.pi, 4 * np.pi, 21)
y_cos = np.cos(x_cos)
# グラフ (上)
axs[0].stem(x_sin, y_sin, label='sin()')
axs[0].stem(x_cos, y_cos, markerfmt ='rD', label='cos()')
# タイトル 設定
axs[0].set_title('title【タイトル】(上)')
# 凡例 設定
axs[0].legend(title='凡例')
# 軸ラベル 設定
axs[0].set_xlabel('xlabel【x軸ラベル】')
axs[0].set_ylabel('ylabel【y軸ラベル】')
# 表示範囲 設定
axs[0].set_ylim(-1.5, 1.5)
# 目盛り 設定
axs[0].set_xticks([np.pi * 0.5 * n for n in range(9)])
axs[0].set_yticks([-1.5, -1, -0.5, 0, 0.5, 1, 1.5])
# 目盛りラベル 設定
axs[0].set_xticklabels([
'0', r'$\frac{1}{2}π$', 'π', r'1$\frac{1}{2}π$', '2π',
r'2$\frac{1}{2}π$', '3π', r'3$\frac{1}{2}π$', '4π',
])
# 垂直線 追加
axs[0].axvline(np.pi)
axs[0].axvline(np.pi * 2.5)
axs[0].axvline(np.pi * 3.5)
# 範囲 追加
axs[0].axhspan(-1, 1, facecolor='lightyellow', edgecolor='blue')
# グラフ (下)
axs[1].stem(x_sin, y_sin)
axs[1].stem(x_cos, y_cos)
# タイトル 設定
axs[1].set_title('title【タイトル】(下)')
# データ上限・下限 設定
axs[1].set_xbound(0.5, np.pi*4 - 0.5)
axs[1].set_ybound(-0.9, 0.9)
# 目盛り 設定
axs[1].set_xticks([np.pi * 0.5 * n for n in range(1, 8)])
axs[1].set_yticks([-0.5, 0, 0.5])
# 目盛りラベル 設定
axs[1].set_xticklabels([
r'$\frac{1}{2}π$', 'π', r'1$\frac{1}{2}π$', '2π',
r'2$\frac{1}{2}π$', '3π', r'3$\frac{1}{2}π$',
])
# グリッド設定
axs[1].grid()
# 表示
plt.show()