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

问题描述

我想在下面创建一个这样的可视化 - 在此处输入图像描述

我已成功实施答案中的代码以获取下面的图像 在此处输入图像描述

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

我的代码如下所示:


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,但没有奏效。有没有办法让声纳的框架不可见?

任何帮助,将不胜感激。我不确定这个问题中的问题是否都值得提出自己的问题,所以我把它们都放在一起,因为它们是相关的。

标签: pythonmatplotlibvisualizationsubplot

解决方案


推荐阅读