23

私は試します:

points = [...]
axe.plot([i[0] for i in points], [i[1] for i in points], linestyle='-', linewidth=10, 
color='black', markeredgewidth=2, markeredgecolor='green')

しかし、私は黒い輪郭を取得します。次の図のようなものをどのように達成できますか? 黒い線に緑の枠

4

3 に答える 3

62

線を 2 回プロットすると、凡例に表示されません。パスエフェクトを使用する方が確かに優れています。以下に 2 つの簡単な例を示します。

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

# setup data
x = np.arange(0.0, 1.0, 0.01)
y = np.sin(2*2*np.pi*t)

# create line plot including an outline (stroke) using path_effects
plt.plot(x, y, color='k', lw=2, path_effects=[pe.Stroke(linewidth=5, foreground='g'), pe.Normal()])
# custom plot settings
plt.grid(True)
plt.ylim((-2, 2))
plt.legend(['sine'])
plt.show()

ここに画像の説明を入力

またはラインシャドウを追加したい場合

# create line plot including an simple line shadow using path_effects
plt.plot(x, y, color='k', lw=2, path_effects=[pe.SimpleLineShadow(shadow_color='g'), pe.Normal()])
# custom plot settings
plt.grid(True)
plt.ylim((-2, 2))
plt.legend(['sine'])
plt.show()

ここに画像の説明を入力

于 2016-03-03T02:23:28.260 に答える
12

太さの異なる線を 2 回プロットするだけです。

axe.plot([i[0] for i in points], [i[1] for i in points], linestyle='-', linewidth=10, 
color='green')
axe.plot([i[0] for i in points], [i[1] for i in points], linestyle='-', linewidth=5, 
color='black')
于 2012-10-04T16:33:53.823 に答える
4

より一般的な答えは、パスエフェクトを使用することです。パスでレンダリングされたアーティストのための簡単なアウトラインとシャドウ (およびその他のもの)。
matplotlib のドキュメント (および例) は非常にアクセスしやすいものです。

http://matplotlib.org/users/patheffects_guide.html

http://matplotlib.org/examples/pylab_examples/patheffect_demo.html

于 2014-11-16T09:53:23.137 に答える