在matplotlib中的3dscatter网格上对齐投影的2d图

时间:2018-08-21 23:00:59

标签: python matplotlib scatter

我对python没有太多经验,只是一个基础课程。我正在尝试创建一个散点图,该散点图具有3维和2d图,分布在图区域的面上。

这是dataset

到目前为止,我有这个:

import 'package:flutter/material.dart';
import 'colors.dart';
import 'dart:math';
import 'dart:async';

final Random randProgress = new Random();
final rgb_color_container rgbColorContainer = new rgb_color_container();


void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MainApp();
  }
}

class MainApp extends StatefulWidget {
  @override
  MainAppState createState() => new MainAppState();
}

class MainAppState extends State<MainApp> {
  int colorSpeed = 1;
  int colorProgress = randProgress.nextInt(1530);

  @override
  Widget build(BuildContext context){
    return new MaterialApp(
      home: new Scaffold(

      ),
      theme: ThemeData(
        canvasColor: rgbColorContainer.light[colorProgress],
        primaryColor: rgbColorContainer.dark[colorProgress],
        accentColor: rgbColorContainer.dark[colorProgress],
      ),
    );
  }
}

到目前为止,太好了;但我无法在图表区域的网格上对齐投影图:

Example

enter image description here

例如,黄点应位于网格的值2上。 我可以在图上使用zs值进行调整,但可以对齐它们,但是当更改值时,网格的比例会移动,并且图也不会再次对齐。

此外,我一生都无法将红点推到图表的背面。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

只需修改代码中的以下几行,即可使其看起来像您想要的。您可以根据自己的喜好调整ylim

ax.plot(x, z, 'r+', zdir='y', zs=2.5 ,marker= 'o', alpha=0.05)
ax.plot(x, y, 'y+', zdir='z', zs=0, marker= 'o', alpha=0.05)

ax.set_ylim(0, 2.5) 
ax.set_zlim(0, 600) 

输出

enter image description here