首页 > 解决方案 > 如何翻转坐标数据?

问题描述

我目前有两组坐标数据,其中一组我想翻转,另一组我想保持不变,然后将这两个数据绘制在同一个图上。

我想翻转客队的坐标,所以当我绘制它们时,并不是两个图都在球场的同一侧。

#home team coords
x_coords_h = ([float((k['X'])) * 124.5 for k in data['h']])
y_coords_h = ([float((k['Y'])) * 80 for k in data['h']])
coords_h = ([(float(k['X']) * 124.5, float(k['Y']) * 80) for k in data['h']])

#away team coords
x_coords_a = ([float((k['X'])) * 124.5 for k in data['a']])
y_coords_a = ([float((k['Y'])) * 80 for k in data['a']])
coords_a = ([(float(k['X']) * 124.5, float(k['Y']) * 80) for k in data['a']])

#plot shots

#plot home shots
#ax.scatter(x_coords_h, y_coords_h, c = "blue", label = 'shots')

#plot away shots
ax.scatter(x_coords_a, y_coords_a, c = "red", label = 'shots')


plt.ylim(0, 80)
plt.xlim(0, 120)
plt.text(95, 5, "@Jack_Nesbitt", color="#f7f7f7", fontsize=10)
plt.show()

目的是获得以下两个输出,叠加(我通过使用 ax.invert_yaxis() 和 ax.invert_xaxis() 得到了这个,但这不适用于使用我所知道的两组数据):

在此处输入图像描述

在此处输入图像描述

任何帮助,将不胜感激!谢谢。

标签: pythonmatplotlib

解决方案


我认为您需要使用invert_xaxis

看看这个 MCVE:

fig, ax = plt.subplots()
ax.scatter([.2,.4],[.2,.4],c='blue')
ax1 = ax.twiny()
ax1.invert_xaxis()
ax1.scatter([.2,.4],[.2,.4],c='red')

输出:

在此处输入图像描述


推荐阅读