zoukankan      html  css  js  c++  java
  • matplotlib两种画散点图的方式

    对于matplotlib.pyplot( as plt )

    先输入主体数据部分:

    import numpy as np
    import matplotlib.pyplot as plt
    
    X_train = np.array([[1,2,3],[2,3,4],[2,2,1],[3,2,2]])
    X_test = np.array([[1,1,1],[2,1,1]])
    
    y_train = np.array([1,1,-1,1])
    y_test = np.array([1,-1])

    我们先做二维图:(取前两维)

    首先容易想到plt.plot, 但这个是默认生成折线图的:

    plt.plot(X_train[:,0],X_train[:,1])
    plt.show()

    但如果我们对线条指定为o的话:

    plt.plot(X_train[:,0],X_train[:,1],"ro")
    plt.show()

    令一种做散点图的方式就是,用scatter:

    plt.scatter(X_train[:,0],X_train[:,1])
    plt.show()

     

    从上可以看到,除了我指定了的颜色外,其他均一致!

    ---------------------------------------------------------------------------------------------------------------------

    对一个(两类的)二维数据画图展示:

    >>> X_1, X_0 = X_train[y_train == 1], X_train[y_train == -1]
    >>> plt.plot(X_1[:, 0], X_1[:, 1], "ro")
    >>> plt.plot(X_0[:, 0], X_0[:, 1], "bo")
    >>> plt.show()

    通过颜色将其区分开了!

    当然用scatter也可以:(但要注意要带color关键字不然会报错)

    >>> plt.scatter(X_0[:, 0], X_0[:, 1], color="b")
    >>> plt.scatter(X_1[:, 0], X_1[:, 1], color="r")
    >>> plt.show()

    可以看到效果一样。

    -------------------------------------------------------------------------------------------------------------------------

    画三维的散点图:

    就不能直接用plot和scatter了:他们都是画2D的。

     而要首先声明一个画3D图的ax

    >>> from mpl_toolkits.mplot3d import Axes3D
    >>> ax = plt.subplot(111, projection='3d')  # 而且每次画完一个3D图都要这个声明
    >>> ax.scatter(X_1[:, 0], X_1[:, 1],X_1[:,2], color="r")
    <mpl_toolkits.mplot3d.art3d.Path3DCollection object at 0x000001E8F70B2A90>
    >>> ax.scatter(X_0[:, 0], X_0[:, 1],X_0[:,2], color="b")
    <mpl_toolkits.mplot3d.art3d.Path3DCollection object at 0x000001E8F70732B0>
    >>> plt.show()

  • 相关阅读:
    使用json序列化类型为“ajax学习.DataSetComment+T_CommentDataTable”的对象时检测到循环引用。
    CKEditor在asp.net上使用的图例详解
    去掉 win7 “测试模式 windows7 内部版本7601” 字样
    Java中非静态方法是否共用同一块内存?
    最长公共子串(LCS)
    [链表]复杂链表的复制
    最长公共子序列
    最大子序列和问题
    [ 队列]从上往下遍历二元树
    [链表]在O(1)时间删除链表结点
  • 原文地址:https://www.cnblogs.com/php-linux/p/11956815.html
Copyright © 2011-2022 走看看