Python 如何旋转matplotlib填充样式标记?
黑色为matplotlib标记。蓝色/橙色的是,我没有以相同的方式旋转它们 下面是生成图形的代码。在此版本中,不使用Python 如何旋转matplotlib填充样式标记?,python,matplotlib,Python,Matplotlib,黑色为matplotlib标记。蓝色/橙色的是,我没有以相同的方式旋转它们 下面是生成图形的代码。在此版本中,不使用t import matplotlib as mpl import matplotlib.pyplot as plt x = [0,10,20,30,40,50,60,70,80,90] for i in x: t = mpl.markers.MarkerStyle(marker='o') t._transform = t.get_transform().rota
t
import matplotlib as mpl
import matplotlib.pyplot as plt
x = [0,10,20,30,40,50,60,70,80,90]
for i in x:
t = mpl.markers.MarkerStyle(marker='o')
t._transform = t.get_transform().rotate_deg(-i)
marker_style = dict(color='b', markerfacecoloralt='orange', markeredgecolor='w', markersize=25,
marker='o' )
plt.plot(i, i, marker=(2, 0, -i), c='k',markersize=30, linestyle='None')
plt.plot(i, i, marker=(3, 0, -i), c='k',markersize=10, linestyle='None')
plt.plot(i, i+20,fillstyle='top', **marker_style)
plt.margins(0.15); plt.grid();plt.show()
我尝试过但没有成功:
marker_style = dict(....., marker=(3, 3, -i) )
or
marker_style = dict(....., marker=t )
or
plt.plot(i, i+20,fillstyle='top', marker=(3, 3, -i)
谢谢,如果你知道并告诉我如何把这些东西放在一起!使用
plt.scatter()
的解决方案也可以。我不知道是否可以使用标记或标记样式来完成,文档仅指定如何填充符号除以一半。您可以通过将两个半圆放在一起并相应地旋转它们来模拟该行为
import matplotlib.pyplot as plt
import matplotlib as mpl
plt.figure(1)
x = [0,10,20,30,40,50,60,70,80,90]
ax=plt.gca()
rot=0
for i in x:
HalfA=mpl.patches.Wedge((i, i+20), 5,theta1=0-rot,theta2=180-rot, color='r')
HalfB=mpl.patches.Wedge((i, i+20), 5,theta1=180-rot,theta2=360-rot, color='b')
rot=rot+360/len(x)
ax.add_artist(HalfA)
ax.add_artist(HalfB)
ax.plot(i, i, marker=(2, 0, -i), c='k',markersize=30, linestyle='None')
ax.plot(i, i, marker=(3, 0, -i), c='k',markersize=10, linestyle='None')
ax.set_xlim((-10, 110))
ax.set_ylim((-10, 130))
哇-太棒了!非常感谢。你可以看到我用它做什么