使用两个列表创建均匀间隔的点数组

时间:2021-06-16 22:38:04

标签: python numpy matplotlib

我必须生成数千个均匀分布的 X、Y 对,我正在尝试在 Python 中找到一种简单的方法来执行此操作。我已经为 X 和 Y 值创建了两个列表,我正在尝试将它们合并到一个列表中以创建类似于彩色图的视觉效果,但是,我不完全理解如何将列表加入数组和我的代码导致点的黑白图。显然我在加入过程中遗漏了一些东西,但我无法弄清楚。

x = np.arange(0, 100, 5)
y = np.arange(0, 100, 5)
test=np.column_stack((x,y))
plt.plot(x, y, 'o', color='black');

当前结果:

Current outcome

所需的结果(由于我试图生成类似的 xy 网格,因此数字不同):

Desired outcome

1 个答案:

答案 0 :(得分:3)

人们经常为此联系numpy.meshgrid()和朋友。一个基本的例子:

public class Fragment2 extends AbstractNavFragment {

    private Fragment2 binder;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        binder = Fragment2Binding.inflate(inflater, container, false);
        return binder.getRoot();
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        binder.viewPager.setAdapter(new RotativeInventorySupplyUDFragment.PageAdapterInternal(getChildFragmentManager()));
        binder.viewPager.setOffscreenPageLimit(2);
        binder.tabLayout.getTab().setupWithViewPager(binder.viewPager);
    }

    @Override
    protected void doOnViewCreate() {}

    private class PageAdapterInternal extends FragmentStatePagerAdapter {

        public PageAdapterInternal(@NonNull FragmentManager fm) {
            super(fm);
        }

        @NonNull
        @Override
        public Fragment getItem(int position) {
            switch (position) {
                case 0:
                    return new IrcSupplyUDFragment(IrcSupplyUDFragment.FragmentType.PENDING);
                case 1:
                    return new IrcSupplyUDFragment(IrcSupplyUDFragment.FragmentType.COMPLETED);
                default:
                    throw new IllegalStateException("Unexpected value: " + position);
            }
        }

        @Nullable
        @Override
        public CharSequence getPageTitle(int position) {
            switch (position) {
                case 0:
                    return translate("rotativeInventory.supply.pendingPositions");
                case 1:
                    return translate("rotativeInventory.supply.positionsCompleted");
                default:
                    return "";
            }
        }

        @Override
        public int getCount() {
            return 2;
        }
    }
}

enter image description here