0

mapplotlib を使用して、次のようなプラス記号をグラフ化したい:

   _
 _| |_
|_   _|
  |_|

私はmatplotlibのドキュメントを読んでいますが、率直に言って、問題を解決するために何を検索すればよいかさえわかりません. 事実上、同じ X 軸 (垂直線) に 2 つの点を配置​​したいのですが、これを行う方法がわかりません。理想的には、1 セットのプロット ポイントでこれを行いたいと思いますが、これが不可能かどうかは理解しています。

私の問題を何らかの形で明確にすることができるかどうか教えてください。

4

2 に答える 2

0

少し検索すれば、カスタム マーカーの作成方法に関するいくつかのリンクが見つかるはずです。あなたの質問に答えるために私が思いついた最善の方法は、Pathオブジェクトをマーカーとして使用することです。したがって、目的のパスを作成する関数を作成できます (クロスを書くのが面倒だったので、より単純な長方形を使用しました)。

def getCustomMarker():
    verts = [(-1, -1), # left, bottom
             (-1, 1), # left, top
             (1, 1), # right, top
             (1, -1), # right, bottom
             (-1, -1)] # ignored

    codes = [matplotlib.path.Path.MOVETO,
             matplotlib.path.Path.LINETO,
             matplotlib.path.Path.LINETO,
             matplotlib.path.Path.LINETO,
             matplotlib.path.Path.CLOSEPOLY]

    path = matplotlib.path.Path(verts, codes)
    return path

目的のカスタム マーカーを使用して任意のデータをプロットできるようになりました。

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

figure = plt.figure()
axes = figure.add_subplot(1, 1, 1)

axes.plot(x, y, marker=getCustomMarker(), markerfacecolor='none', markersize=3)

plt.show()

これにより、希望するサイズで任意の位置に任意のマーカーをプロットできます。

于 2013-10-18T12:26:48.623 に答える