绘制x,y的函数作为散点图上的颜色密度?

时间:2017-06-22 17:19:15

标签: python matplotlib plot

说我有一个测量高度列表:

[0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0, 10.5, 11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0, 16.5, 17.0, 17.5]

我有一个二维角度列表,数据来自(从垂直方向),

[[], [20, 50], [0, 10, 20, 30, 40, 50, 320, 330, 340, 350], [0, 10, 20, 30, 40, 330, 340, 350], [0, 10, 20, 30, 40, 50, 310, 320, 340], [0, 10, 20, 30, 40, 50, 60, 300, 310, 330, 340, 350], [0, 20, 30, 50, 60, 70, 310, 320, 330, 340, 350], [0, 10, 20, 40, 110, 320, 330, 340, 350], [0, 10, 20, 150, 300, 310, 320, 330, 340, 350], [0, 10, 20, 140, 180, 190, 310, 320, 330, 340], [10, 20, 30, 40, 150, 180, 340], [0, 140, 180, 320], [130, 140, 180, 190], [130, 180, 190], [190, 200], [180, 190], [170, 180, 190], [160, 170, 180, 190], [150, 160, 330, 340], [160, 170, 190, 350], [170, 190], [170], [190], [180], [160], [340], [20, 30, 40, 290, 330], [0, 20, 40, 60, 340], [], [], [], [0], [10, 20, 200, 230, 290], [10, 180, 190, 200, 210, 240, 340, 350], [30, 220]

(列表集与第一个列表中的高度相关,因此空白条目表示未在相应高度处进行测量)。我想在x轴上绘制角度,在y轴上绘制高度。但是,对于每个点,我还想绘制一个先前计算过的斜率(不是前两个列表的斜率)。此斜率列表与角度列表的格式完全相同,我想将其绘制为颜色密度。斜率通常在-1和1之间,它们显示相关性。我基本上每次搜索每个角度的两个变量的斜率。

这是我到目前为止所做的,但我很难弄清楚如何绘制坡度。

for x in range(0, len(height)):
    height_temp = np.linspace(height[x], height[x], len(angle[x]))
    plt.scatter(angle[x], height_temp, s = slope[x])
plt.show()

任何帮助都将不胜感激!!

1 个答案:

答案 0 :(得分:1)

这就是你需要的:

plt.scatter(angle[x], height_temp, c=slope[x], s=slope[y], cmap='rainbow')

你可能也想考虑设置vmin和vmax。