使用Python中的三个1D数组改进3D轮廓/曲面图

时间:2020-07-28 16:46:56

标签: python matplotlib plot surface

因此,我想为我的硕士论文制作3D图,分析土壤水分和土壤温度对土壤CO2排放量的影响。我将提供三个数组:

x = [ 4.84625     5.0544      4.16643056  3.76109722  3.78773611  4.09504167
  4.72077778  5.42934722  6.28011111  5.07029167  4.95979167  4.23276389
  3.51766667  3.69626389  5.01547222  5.53184722  5.78104167  5.54768056
  5.75745833  6.61322222  5.64434722  4.57231944  3.54957971  2.95773611
  3.75422222  3.86697222  4.02002778  4.44877778  4.84073611  6.023625
  7.03698611  7.99308333  8.91447222  8.07004167  7.707875    7.48558333
  9.20861765  9.0425      7.79034722  7.07602778  7.44694444  8.20219444
  8.89056944  8.06949383  8.19102083  9.210375    9.84386458 10.14367708
  9.431875    8.50241667  8.08403125  8.72190625  8.35941667  8.40601042
  8.97308333 10.77721875 11.66096875 11.44730208 10.46144706 10.43688542
 10.9673125  10.42191667 10.66585417 12.36960417 11.6680625  10.7986875
 10.06146875 10.01920833  9.85397917 10.23405208 10.86102174 10.22102083
  9.92835417 10.29175    11.03846875 11.00278125 11.47222917 10.5285625
 10.08645833 10.32583333 10.77623958 10.37211458 10.33952083 11.25215625
 11.59722917 12.64604167 11.98882979 12.97326042 14.70359375 13.58966667
 12.50553125 12.036      12.26488542 12.65345833 13.63321875 14.716625
 14.10013542 12.94648958 11.97995833 11.93860417 12.67221053 11.88233333
 11.43633333 11.65863333 11.89045    11.31366667 11.37516667 12.35875
 13.71744167 14.2269     13.72503333 14.65824167 15.05738043 15.31138333
 16.22935    17.15700833 18.54428333 18.88004167 17.46234167 17.08819167
 16.34606667 14.36549167 13.13010833 14.04925833 14.77185833 14.63801667
 15.05756667 15.38425217 16.21679167 17.05755833 17.59698333 16.08764167
 15.294      18.605      17.19335    16.586375   16.83745833 14.940125
 14.704475   14.52779167 13.94665    13.61068333 13.18305833 13.76986667
 15.228325   16.32699167 17.84733333 16.76384167 17.55046667 18.7748
 18.59296667 17.73594167 18.14850833 18.61726882 18.07525    18.0519375
 18.73240625 18.70394792 18.2888125  17.76651042 15.99922917 15.52804167
 15.37077083 15.91680208 16.1623125  15.90269792 16.4638125  15.94629592
 16.11120833 16.50994167 15.526325   15.65330833 17.43736667 19.29425833
 18.09973043 15.49424167 14.51321667 13.88214167 13.41865    12.371875
 12.54573333 12.67726667 12.73368142 12.367625   12.371625   13.02910833
 14.65609167 14.89021667 13.61189167 13.26925    14.379125   13.49785833
 13.31195833 12.738725   12.59355833 12.45825833 12.10555833 11.61558462
 11.25466667 10.69368333 10.368075   10.45246667 10.78280833 11.92320833
 11.91246667 11.96740833 12.65991525 12.87470833 11.37119167  9.33916667
  7.323775    6.40818333  6.15135833  5.57013043  6.37014167  7.06788333
  7.39481667  7.65511667  7.71625833  8.4291      8.35434167  8.60410345
  9.26129167  8.84153333  9.0604      8.58580833  8.05845     7.83515833
  8.1961      8.99316667  8.46611667  9.0004      9.05744167  8.05939167
  8.48614167 10.01413043 10.5946     11.47135833 11.29858333 11.14658333
 11.202075   11.35120833 10.61796667 10.301475    8.77394167  9.3011
 10.28681667 10.21425833 10.19259167  9.61508475  8.57460833  7.38274167
  5.897325    5.12316667  4.5767      4.93705833  5.42375     4.78229167
  4.14294167  5.304725    5.788125    6.22402703  7.12951111  6.70865833
  6.282825    5.82234167  5.927       7.3888      7.17425833  6.85355833
  5.19165     5.01914167  5.1706      5.61221667  4.529575    5.42310833
  6.056725    7.408125    8.10161667  7.48716667  7.53175     7.89276471]

y = [0.2733176  0.27964209 0.27692862 0.27662329 0.27148507 0.27267448
 0.27899191 0.27840397 0.27597469 0.27302769 0.27302738 0.28063012
 0.29610115 0.28930181 0.28496873 0.28086077 0.27846396 0.27424571
 0.27329482 0.27181639 0.29800326 0.31738405 0.33345126 0.33481233
 0.31019282 0.29790984 0.29688231 0.29420815 0.29159637 0.28603658
 0.28328972 0.28150449 0.28119089 0.27711579 0.27961831 0.27844424
 0.26938635 0.26961442 0.26538158 0.26481452 0.2638801  0.26213648
 0.25983697 0.26047091 0.25655433 0.25160312 0.25345591 0.25247221
 0.26737732 0.26958303 0.26529778 0.26566143 0.27940386 0.27938518
 0.27759135 0.28415508 0.27627014 0.27467795 0.27172908 0.27087189
 0.26540338 0.26391582 0.26243198 0.27190417 0.28611455 0.27795939
 0.2732012  0.26903494 0.26588979 0.26349886 0.2616274  0.25885331
 0.25673807 0.25259062 0.24985113 0.24619419 0.24178816 0.23877029
 0.237692   0.23647172 0.23381978 0.22825834 0.22726297 0.22257543
 0.22148879 0.22244292 0.21916408 0.21658375 0.21282291 0.20990481
 0.20563385 0.20079866 0.1969995  0.19335424 0.19054059 0.19354637
 0.19344151 0.18956079 0.18594144 0.18472481 0.18930976 0.18990058
 0.18843025 0.18734792 0.18596231 0.21316707 0.20624629 0.20493351
 0.19930249 0.19551533 0.1955808  0.19506241 0.18765736 0.17886094
 0.17530556 0.17050445 0.16643018 0.17408098 0.22818912 0.20714307
 0.19985945 0.19664134 0.19724992 0.19294141 0.18936391 0.20077928
 0.20709991 0.20883202 0.20716167 0.2042538  0.19738381 0.20399176
 0.20203433 0.16111788 0.14870067 0.14630156 0.14268198 0.14257247
 0.14477404 0.14525339 0.14481834 0.14177843 0.13974793 0.13718585
 0.13358842 0.13011725 0.13051324 0.1270028  0.12848073 0.14058003
 0.13731316 0.13491559 0.13315127 0.14203353 0.15867211 0.15778603
 0.14926617 0.15811576 0.1789844  0.14458724 0.22626758 0.1917349
 0.14881479 0.15324344 0.14396887 0.15558101 0.15099083 0.13640126
 0.157956   0.17211004 0.17991944 0.16765933 0.17670911 0.19620278
 0.18381065 0.16858602 0.16429211 0.16256395 0.1585947  0.18236735
 0.19134138 0.18162246 0.18058074 0.17614707 0.17215646 0.16986923
 0.17079299 0.17672539 0.17584268 0.17592995 0.17949796 0.17338403
 0.16452258 0.1650575  0.16653916 0.15830426 0.16795308 0.17858168
 0.15020058 0.1480237  0.14614203 0.16709302 0.16820226 0.14711241
 0.14078599 0.15647374 0.13778884 0.1365005  0.13747749 0.15373748
 0.16493339 0.165129   0.16511313 0.17024292 0.18020126 0.19782195
 0.20093688 0.18753853 0.19066367 0.19385462 0.21801323 0.21849588
 0.20849082 0.18372053 0.17648474 0.20948026 0.21531231 0.21933009
 0.21947646 0.19001721 0.21650568 0.19291195 0.1792483  0.17773779
 0.17982754 0.18126038 0.1781274  0.1829152  0.17868724 0.17298911
 0.17422606 0.17384864 0.17303813 0.1731333  0.17030162 0.23143221
 0.25468778 0.26653923 0.2857105  0.24489137 0.24188946 0.22500125
 0.22285074 0.23633701 0.2560784  0.27062934 0.26484626 0.25422344
 0.22523628 0.22076187 0.24572896 0.25947905 0.27356545 0.25011848
 0.24958946 0.25780442 0.24529393 0.25310605 0.21400465 0.21765686
 0.23685871 0.25672207 0.25800685 0.26481888 0.2643238  0.2618982
 0.25847495 0.21331127 0.21287104 0.2072117  0.21291095 0.20376975]

z = [0.995      1.3725     1.1315625  1.01244444 0.89268817 1.08
 1.35489362 1.41903226 1.55361702 1.26182796 1.389375   1.11104167
 1.09847826 1.32578947 1.7159375  1.59925532 1.2740625  1.191875
 1.30364583 1.54854167 0.98580645 1.04809524 0.81024691 0.79752688
 1.07645833 1.26536842 1.18791667 1.1765625  1.106      1.32197917
 2.01177083 2.39375    2.12978947 1.78104167 1.40648936 1.78170213
 1.99021978 1.86073684 1.77042553 1.6684375  2.07479167 1.68957895
 1.67510417 1.88096154 1.86641667 2.04966667 2.1635     2.64733333
 2.47675    2.12266667 2.05308333 2.29491667 2.10508333 2.09352941
 2.41916667 3.34341667 3.72583333 3.10033333 2.97588785 2.99875
 3.59441667 2.93508333 3.47741667 3.75666667 3.41791667 3.0175
 2.95588235 2.42058333 2.26108333 3.21908333 2.82773913 2.71352941
 2.40291667 2.63283333 3.07066667 2.88675    2.88033333 2.50285714
 2.42375    2.40983193 3.01833333 2.7025     3.29133333 3.94225
 3.57386555 3.49583333 3.43228814 3.98725    4.098      3.71733333
 3.38458333 3.16975    3.46283333 3.77633333 4.083      5.90783333
 5.167      3.82308333 3.51383333 3.50825    4.70704762 3.463
 3.82958333 4.36025    4.13691667 3.95141667 3.98       4.65241667
 5.32958333 5.27133333 5.10675    5.16633333 5.0998913  4.78808333
 4.85716667 5.00791667 5.49058333 5.79508333 6.19516667 6.587
 5.36275    4.55583333 4.51475    5.42683333 5.0675     5.48975
 6.17108333 6.52434783 6.91158333 7.41808333 6.78375    6.12716667
 5.40568182 7.56309091 5.83841667 5.47808333 5.25461538 3.95767241
 4.89420168 4.67983193 4.02658333 3.53408333 3.53566667 3.64016667
 3.88533333 4.17375    4.47108333 4.75833333 4.49808333 4.16283333
 3.55460177 2.97515464 2.90229167 3.30578313 3.0503125  2.70791667
 3.98302083 4.6140625  4.375      5.2559375  4.58145833 4.885
 4.69333333 4.76958333 4.17125    3.74145833 5.2028125  5.14653061
 5.34008333 5.65791667 6.16933333 5.89891667 6.60125    7.41291667
 6.14521739 5.45325    5.55683333 5.05241667 4.12783333 3.54116667
 4.51316667 4.71166667 4.53274336 4.3015     4.47058333 5.16025
 6.35366667 6.27658333 5.56616667 5.50141667 5.75166667 5.49983333
 5.03733333 4.52625    5.02225    5.04325    4.62008333 4.108125
 3.37444444 3.07458333 3.02958333 2.97541667 3.07675    3.346
 3.19166667 3.10241667 4.39016949 5.04008333 3.91775    3.05566667
 2.35808333 2.1405     2.16716667 2.18086957 2.22775    2.60108333
 2.71733333 2.77333333 2.74375    3.03633333 2.65525    2.80560345
 2.87691667 2.97915254 2.82966667 2.74383333 2.6515     2.73083333
 2.83041667 2.99420168 2.77983333 2.88521008 2.92166667 2.56216667
 2.51633333 2.97617391 3.23462185 3.98925    3.47316239 3.11383333
 2.21341667 2.8835     3.24741667 2.89025    2.04675214 2.22504202
 2.99016667 3.30788136 2.32275    1.8982906  2.35336134 2.33445378
 1.45376068 1.78205128 1.20991597 1.63570175 1.87691667 1.64258621
 1.13090909 1.22559322 1.21440678 1.44561644 2.37636364 2.13608333
 1.47163793 1.31156522 1.12508621 2.4512605  2.51965217 1.81958333
 1.48675214 1.13310345 1.20683761 1.44136752 1.66857143 2.05017094
 1.60869565 2.04347458 2.14201754 2.12915966 1.84618644 2.06779412]

到目前为止,我得到的是:

from scipy.interpolate import griddata
from mpl_toolkits import mplot3d
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(15,10))
ax = fig.gca(projection='3d')
xi = np.linspace(x.min(), x.max(), 50)
yi = np.linspace(y.min(), y.max(), 50)
Xi, Yi = np.meshgrid(xi, yi)
Zi = griddata((x, y), z, (xi[None, :], yi[:, None]))
ax.contour(Xi, Yi, Zi, levels=5, linewidths=0.5, colors='k')
cntr1 = ax.contourf(Xi, Yi, Zi, levels=14, cmap='viridis')

fig.colorbar(cntr1, ax=ax, shrink=0.5)
ax.set_xlim(x.max(), x.min())
ax.set_xlabel('temp')
ax.set_ylabel('moist')
ax.set_zlabel('CO2 Flux')

输出My plot

但是我真正希望拥有的是这样的东西: enter image description here

我非常感激任何想法,特别是更漂亮的网格,如何达到第二个情节。 我已经使用过matplotlibs plot_surfaceplot_trisurf了,但是这对我来说并不奏效,因为我经常需要z的函数,而我却没有。

0 个答案:

没有答案