在绘制多个极坐标图的散点图时如何解决这些问题?

时间:2019-06-24 06:42:11

标签: python matplotlib visualization subplot

我想在下面创建这样的可视化文件- enter image description here

我已经成功实现了this答案中的代码,从而获得了下面的图像 enter image description here

从比较两个图像可以看出,即使可映射的图像序列相同,颜色的差异也很大。 我需要创建自己的颜色图以使颜色更明显吗?我的第二个问题是如何为整个图形绘制颜色条?

我的代码如下:


fig, ax = plt.subplots()


##Sonars plotting function - 
def plot_inset(width, axis_main, data, x,y):
    ax_sub= inset_axes(axis_main, width=width, height=width, loc=10, 
                       bbox_to_anchor=(x,y),
                       bbox_transform=axis_main.transData, 
                       borderpad=0.0, axes_class=get_projection_class("polar"))

    theta = data["Bin_Mids"]
    radii = data["Frequency"]
    length = data["pass.length"]
    colors = plt.cm.magma(length/100)
    bars = ax_sub.bar(theta, radii, width=0.3, bottom=0.0, color = colors, alpha=0.5)
    ax_sub.set_xticklabels([])
    ax_sub.set_yticks([])
    ax_sub.yaxis.grid(False)
    ax_sub.xaxis.grid(False)
    ax_sub.spines['polar'].set_visible(False)

##Calling the function
for player, loc in player_dict.items():
    plot_inset(1.1,ax, data = Passer(player), x = loc[0], y = loc[1])
    ax.text(loc[0]+10, loc[1], player, size = 6.25, rotation = -90)

player_dict看起来像这样(示例):

player_dict = {'Sarah Bouhaddi': [0, 45], 'Marion Torrent': [42, 15], 'Gaëtane Thiney': [97, 68]} ##the list for every player is their x,y co-ordinate

我要发送给每个玩家的绘图功能的data是一个数据框,看起来像这样(一个示例)-

   Bin_Mids  pass.length  Frequency
0    1.3660    27.202942          1
1    1.0925    23.024565          3
2    0.8195    16.834414          3
3    0.5465    14.008925          1
4   -0.2735    21.906391          1
5   -0.5465    19.285486          1
6   -0.8195    20.975364          4
7   -1.0925    23.735166          3

次要问题

我面临的另一个问题是防止极地声纳隐藏音高线。我尝试设置zorder,但是没有用。有没有办法使声纳的框架不可见?

任何帮助将不胜感激。我不确定该问题中的所有问题是否都应有其自身的问题,因此我将它们联系在一起,将它们合并在一起。

0 个答案:

没有答案