[英]matplotlib custom markers
我想要标记,如空格,+,或x,或。,或任何内部厚度可调; 事实上,像Origin一样。 它似乎需要定制。
代码示例:
import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(10) ** 2,
'k-',
marker = 's',
mfc = 'none',
lw = 2,
mew = 2,
ms = 20)
plt.show()
使用text
,您可以使用字体中的任何可用字符。 你需要自己迭代它们,我不认为你可以连续控制它们的线宽(当然,你可以选择'粗体'等,如果可用的话)。
from numpy import *
import matplotlib.pyplot as plt
symbols = [u'\u2B21', u'\u263A', u'\u29C6', u'\u2B14', u'\u2B1A', u'\u25A6', u'\u229E', u'\u22A0', u'\u22A1', u'\u20DF']
x = arange(10.)
y = arange(10.)
plt.figure()
for i, symbol in enumerate(symbols):
y2 = y + 4*i
plt.plot(x, y2, 'g')
for x0, y0 in zip(x, y2):
plt.text(x0, y0, symbol, fontname='STIXGeneral', size=30, va='center', ha='center', clip_on=True)
plt.show()
您也可以直接使用plot
,虽然渲染看起来不太好,但您对字符的控制力也不是很多。
plt.figure()
for i, symbol in enumerate(symbols):
y2 = y + 4*i
plt.plot(x, y2, 'g')
marker = "$%s$" % symbol
plt.plot(x, y2, 'k', marker=marker, markersize=30)
这是你想要的吗?
我通过过度绘图来做到这一点:
import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(10) ** 2,
'k-',
marker = 's',
mfc = 'none',
lw = 2,
mew = 2,
ms = 20)
plt.plot(np.arange(10) ** 2 + 20,
'k-',
marker = '+',
mfc = 'none',
lw = 2,
mew = 2,
ms = 20)
plt.plot(np.arange(10) ** 2 + 20,
'k-',
marker = 's',
mfc = 'none',
lw = 2,
mew = 2,
ms = 20)
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.