首页 > 解决方案 > 为什么 matplotlib 曲面图看起来像一条线?

问题描述

我无法让 matplotlib 绘制这个曲面图。这是我正在使用的代码流......

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')

x = np.arange(21)
y = np.arange(21)
xs, ys = np.meshgrid(x, y)

# My Z comes from other data and is 21 x 21 with values ranging from 300 -  500 forming a surface

ax.plot_surface(xs, ys, z)
plt.show()

我得到一个看起来像这样的图像......

matplotlib 曲面图看起来像线

它看起来像一条不像我的 Z 值那样跨越整个空间的线。我究竟做错了什么?

编辑:

回答者是对的,它确实有效。在我的应用程序代码中,我对 x 和 y 使用相同的数组作为 meshgrid 的输入,这搞砸了,因为我猜它需要对它们进行变异,并且函数 args 通过引用传递

我的Z供参考

[[380. 390. 400. 410. 419. 428. 436. 444. 451. 458. 465. 471. 477. 482. 488. 493. 497. 502. 506. 510. 513.]
 [390. 400. 410. 419. 428. 437. 445. 453. 461. 468. 474. 481. 487. 492. 497. 502. 507. 512. 516. 520. 523.]
 [399. 409. 419. 428. 437. 446. 455. 462. 470. 477. 483. 490. 496. 501. 506. 511. 516. 521. 525. 529. 532.]
 [407. 417. 427. 436. 445. 454. 462. 470. 478. 485. 491. 498. 503. 509. 514. 519. 524. 529. 533. 537. 540.]
 [413. 423. 433. 443. 452. 461. 469. 477. 484. 491. 498. 504. 510. 515. 521. 526. 531. 535. 539. 543. 547.]
 [419. 428. 438. 448. 457. 466. 474. 482. 489. 496. 503. 509. 515. 521. 526. 531. 536. 540. 544. 548. 552.]
 [423. 432. 442. 452. 461. 470. 478. 486. 493. 500. 507. 513. 519. 525. 530. 535. 540. 544. 548. 552. 556.]
 [426. 435. 445. 455. 464. 473. 481. 489. 496. 503. 510. 516. 522. 528. 533. 538. 543. 547. 551. 555. 559.]
 [428. 438. 448. 457. 466. 475. 483. 491. 499. 506. 512. 518. 524. 530. 535. 540. 545. 549. 554. 558. 561.]
 [430. 440. 449. 459. 468. 477. 485. 493. 500. 507. 514. 520. 526. 532. 537. 542. 547. 551. 555. 559. 563.]
 [431. 441. 451. 460. 469. 478. 486. 494. 502. 509. 515. 521. 527. 533. 538. 543. 548. 553. 557. 561. 564.]
 [432. 442. 452. 461. 470. 479. 487. 495. 503. 510. 516. 523. 528. 534. 539. 544. 549. 554. 558. 562. 565.]
 [433. 443. 452. 462. 471. 480. 488. 496. 503. 510. 517. 523. 529. 535. 540. 545. 550. 554. 559. 562. 566.]
 [433. 443. 453. 463. 472. 481. 489. 497. 504. 511. 518. 524. 530. 535. 541. 546. 550. 555. 559. 563. 566.]
 [434. 444. 454. 463. 472. 481. 489. 497. 504. 511. 518. 524. 530. 536. 541. 546. 551. 555. 560. 563. 567.]
 [434. 444. 454. 463. 473. 481. 490. 497. 505. 512. 518. 525. 531. 536. 541. 546. 551. 556. 560. 564. 567.]
 [434. 444. 454. 464. 473. 482. 490. 498. 505. 512. 519. 525. 531. 536. 542. 547. 551. 556. 560. 564. 567.]
 [435. 445. 454. 464. 473. 482. 490. 498. 505. 512. 519. 525. 531. 537. 542. 547. 552. 556. 560. 564. 568.]
 [435. 445. 454. 464. 473. 482. 490. 498. 505. 512. 519. 525. 531. 537. 542. 547. 552. 556. 560. 564. 568.]
 [435. 445. 455. 464. 473. 482. 490. 498. 505. 512. 519. 525. 531. 537. 542. 547. 552. 556. 561. 564. 568.]
 [435. 445. 455. 464. 473. 482. 490. 498. 506. 513. 519. 525. 531. 537. 542. 547. 552. 556. 561. 565. 568.]]

标签: pythonmatplotlibplot

解决方案


在此处输入图像描述ax.plot_surface(x, y, z)->ax.plot_surface(xs, ys, z)


推荐阅读