有没有办法在Python中绘制3D数据的2D散布图?

问题描述

plt.figure(figsize = (10,8))
plt.scatter(x_range,y_range,s=1,c=Avgs,cmap = 'hot')
plt.colorbar().set_label('Avgs',fontsize=14)
plt.xlabel('x',fontsize=14)
plt.ylabel('y',fontsize=14)
plt.title('ToA heatmap',fontsize=17)
plt.show()

我正在尝试绘制一个8x8的网格,并且对于网格中的每个正方形,我希望基于相应的z列表获得颜色。对于“平均”列表,我遇到此错误ValueError: Invalid RGBA argument: 978641729006.499

x和y仅为8x8:x_range = [*range(1,9)] y_range = [*range(1,9)],z的长度为64。

我实际上是想摆脱最后的情节:https://towardsdatascience.com/two-dimensional-histograms-and-three-variable-scatterplots-making-map-like-visualisations-in-7f413955747

我要使用的z值有问题吗?

Avgs = [978641729006.499,978641729400.8718,978641729104.939,978641729955.9729,978987521304.7899,978641730148.7137,978641729455.2655,978641729920.0767,978641729629.279,978641730085.0204,978641729865.4275,977317126354.3619,978623695074.3928,976261941754.0288,978219139240.5585,977297545709.2174,978641729701.3525,978641730366.5692,978641730164.7329,978320088204.468,980484773299.2648,979024582561.7308,978583203617.9937,979500695052.7529,978641729194.0791,978641729650.9701,978641729445.3525,978641729906.5613,978641729793.7373,978971834612.6752,978641729959.2432,978641730895.917,978641729877.5889,978958815999.003,978641730412.9406,978641730936.1565,978641731045.608,981320625644.9747,978641731431.1409,979100728947.8063,978252805749.7512,978692284847.6948,978839590344.0538,977759736772.8792,978278403900.65,977963671775.7217,978020959030.8743,975589489530.2675,978641729128.0607,978641729732.8032,978641729472.7153,978641730005.691,978641730299.7589,979914042136.2838,978641729454.6012,978641729870.9205,978641728254.5948,978641729076.9629,978641728896.7665,978641729508.8926,978641729493.4355,978654395498.1919,978641728998.9877,978641729249.6735]

解决方法

为了传递值数组,在您的情况下,create task mytask_hour warehouse = COMPUTE_WH schedule = '1 minute' as call TASK_(); Avgsc的形状必须与Avgsx相同。在这种情况下,y不满足要求。

另一方面,Avgs的数据不必从01,它们的值会自动缩放:

imshow

输出:

enter image description here


更新:用于您的数据:

Avgs = np.arange(256).reshape(16,-1) * 1000.001
plt.imshow(Avgs)
plt.colorbar().set_label('Avgs',fontsize=14)
plt.xlabel('x',fontsize=14)
plt.ylabel('y',fontsize=14)
plt.title('ToA heatmap',fontsize=17)
plt.show()

给予:

enter image description here