我使用 Matplotlib 在图形上绘制线条。现在我想为线上的各个点设置样式,特别是标记。我该怎么做呢?
为了澄清我的问题,我希望能够为一行上的单个标记设置样式,而不是为该行上的每个标记设置样式。
原文由 dbmikus 发布,翻译遵循 CC BY-SA 4.0 许可协议
我使用 Matplotlib 在图形上绘制线条。现在我想为线上的各个点设置样式,特别是标记。我该怎么做呢?
为了澄清我的问题,我希望能够为一行上的单个标记设置样式,而不是为该行上的每个标记设置样式。
原文由 dbmikus 发布,翻译遵循 CC BY-SA 4.0 许可协议
有一张图片显示了所有标记的名称和描述,希望对您有所帮助。
import matplotlib.pylab as plt
markers = ['.',',','o','v','^','<','>','1','2','3','4','8','s','p','P','*','h','H','+','x','X','D','d','|','_']
descriptions = ['point', 'pixel', 'circle', 'triangle_down', 'triangle_up','triangle_left',
'triangle_right', 'tri_down', 'tri_up', 'tri_left', 'tri_right', 'octagon',
'square', 'pentagon', 'plus (filled)','star', 'hexagon1', 'hexagon2', 'plus',
'x', 'x (filled)','diamond', 'thin_diamond', 'vline', 'hline']
x=[]
y=[]
for i in range(5):
for j in range(5):
x.append(i)
y.append(j)
plt.figure(figsize=(8, 8))
for i,j,m,l in zip(x,y,markers,descriptions):
plt.scatter(i,j,marker=m)
plt.text(i-0.15,j+0.15,s=m+' : '+l)
plt.axis([-0.1,4.8,-0.1,4.5])
plt.axis('off')
plt.tight_layout()
plt.show()
原文由 Wubin Ding 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答974 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
在调用 --- 时指定关键字 args
linestyle
和/或marker
plot
。例如,使用虚线和蓝色圆圈标记:
对同一件事的快捷方式调用:
以下是可能的线条和标记样式的列表:
编辑: 以标记任意点子集为例,如评论中所要求:
由于 此功能分支 的合并,最后一个使用
markevery
kwarg 的示例在 1.4+ 中是可能的。如果您卡在旧版本的 matplotlib 上,您仍然可以通过在线图上叠加散点图来获得结果。有关更多详细信息,请参阅 编辑历史记录。