首页 > 其他分享 >002_可视化_ipynb

002_可视化_ipynb

时间:2024-04-07 09:02:35浏览次数:26  
标签:iris plt set 002 vector 可视化 ipynb np ax

import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
import numpy as np
import plotly.express as px

【pyplot】 绘制鸢尾花数据

# 加载鸢尾花数据集  返回值的不同
iris = load_iris(return_X_y = True)    # return (data(ndarrge), target)  
# iris = load_iris(as_frame = False)   # return pandas dataframe

# 提取花萼长度和宽度做为变量
sepal_len = iris[0][:,0]
sepal_wid = iris[0][:,1]
sepal_target = iris[1]


fih, ax = plt.subplots()

# 创建散点图
ax.scatter(sepal_len, sepal_wid, c = sepal_target, cmap = 'rainbow')

plt.title("iris sepal length and width")
ax.set_xlabel("sepal length(cm)")
ax.set_ylabel("sepal width(cm)")
plt.show()

png

【plotly】

1.鸢尾花散点图

# 获取鸢尾花数据集
iris_df = px.data.iris()
# print(iris_df.head())
fig = px.scatter(iris_df, x = iris_df.columns[0], y = iris_df.columns[1],  # 导入数据
                 width = 500 , height = 500                                # 图片尺寸
                )
fig.update_layout(xaxis_range = [4, 8] , yaxis_range = [1, 5])
fig.show()

散点图(按品种分类)

fig = px.scatter(iris_df, x = iris_df.columns[0], y = iris_df.columns[1],  # 导入数据
                 width = 600, height = 600,                               # 图片尺寸
                 color = "species"
                )
fig.update_layout(xaxis_range = [4, 8] , yaxis_range = [1, 5])
fig.show()

image-20240407084109495

2.使用plotly绘制平面等高线

meshgrid example

x1 = np.arange(10)
x2 = np.arange(5)

xx1, xx2 = np.meshgrid(x1, x2)
x1,x2,xx1,xx2
(array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
 array([0, 1, 2, 3, 4]),
 array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]),
 array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
        [3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
        [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]]))

平面等高线

import matplotlib.pyplot as plt

x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2

# 绘制等高线
plt.contour(X, Y, Z, levels = np.linspace(0, 8, 17), cmap = 'RdYlBu_r')
plt.colorbar()
plt.show()

image-20240407084134001

3.热图

pyplot.imshow()函数可以将二维的数据矩阵的值映射为不同的颜色,从而展示数据的密度
seaborn.heatmap

import seaborn as sns
import numpy as np

iris_sns = sns.load_dataset('iris')
iris_sns.iloc[:,:-1].head()
sns.heatmap(data = iris_sns.iloc[ : ,0 : -1], 
            vmin = 0, vmax = 8,  # 最大值和最小值
            cmap = 'RdYlBu_r',    # 颜色映射
            annot = False,       # 是否显示值
            xticklabels = True,  # 是否显示刻度
            yticklabels = False  
           )

image-20240407084200201

4.三维散点图

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets

iris = datasets.load_iris()
X = iris.data[: , : 3]
Y = iris.target

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

# 绘制散点图
ax.scatter(X[:, 0 ], X[:, 1], X[:, 2], c = Y)

ax.set_xlim(4, 8)
ax.set_ylim(1, 5)
ax.set_zlim(0, 8)

ax.set_proj_type('ortho') # 设置正投影

plt.show()

image-20240407084214153

5.三维线图

import matplotlib.pyplot as plt
import numpy as np
# import plotly.graph_objects as go

# 生成随机游走的数据
num_step = 300
t = np.arange(num_step)
x = np.cumsum(np.random.standard_normal(num_step))  # 服从标准正太分布
y = np.cumsum(np.random.standard_normal(num_step)) 
z = np.cumsum(np.random.standard_normal(num_step)) 

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

ax.plot(x, y, z, color = 'darkblue')
ax.scatter(x, y, z, c = t, cmap = 'viridis' )

ax.set_proj_type('ortho')
ax.view_init(elev = 30, azim = 150)
plt.show()

image-20240407084228122

6.箭头图

import matplotlib.pyplot as plt

A = [[0, 5],
    [3, 4],
    [5, 0]]

def draw_vector(vector, RGB):
    '''
    quiver([X, Y], U, V, [C], **kwargs)
    
    '''
    plt.quiver(0, 0,  # 箭头的起始坐标
               vector[0], vector[1],  # 箭头方向的 x 和 y 的分量 组成了箭头向量
               angles = 'xy',  
              scale_units= 'xy', scale = 1, color = RGB,zorder = 1e5)

    
fig, ax = plt.subplots()
v1 = A[0]
draw_vector(v1, '#FF0000')
v2 = A[1]
draw_vector(v2, '#00FF00')
v3 = A[2]
draw_vector(v3, '#0000FF')

ax.axvline(x = 0, c = 'k')
ax.axhline(y = 0, c = 'k')
ax.grid()
ax.set_aspect('equal', adjustable = 'box')
ax.set_xbound(lower = -0.5, upper = 5)
ax.set_ybound(lower = -0.5, upper = 5)


png

def draw_vector_3D(vector, RGB):
    '''
    quiver([X, Y], U, V, [C], **kwargs)
    
    '''
    plt.quiver(0, 0, 0,  # 箭头的起始坐标
               vector[0], vector[1], vector[2], # 箭头方向的 x 和 y 的分量 组成了箭头向量
               color = RGB,zorder = 1e5)
fig = plt.figure(figsize = (6, 6))
ax = fig.add_subplot(111, projection = '3d', proj_type = 'ortho')

v_1 = [row[0] for row in A]
draw_vector_3D(v_1, '#FF6600')
v_2 = [row[1] for row in A]
draw_vector_3D(v_2, '#FF6600')
ax.set_xlim(0, 5)
ax.set_ylim(0, 5)
ax.set_zlim(0, 5)
ax.view_init(azim = 30 ,elev = 25)
ax.set_box_aspect([1, 1,1 ])

ax,A
(<Axes3D: >, [[0, 5], [3, 4], [5, 0]])

png

标签:iris,plt,set,002,vector,可视化,ipynb,np,ax
From: https://www.cnblogs.com/baidh/p/18118320

相关文章

  • 001_可视化_matplotlib
    1.解剖一副图importmatplotlib.pyplotaspltimportnumpyasnpfrommatplotlib.patchesimportCirclefrommatplotlib.patheffectsimportwithStrokefrommatplotlib.tickerimportAutoMinorLocator,MultipleLocatorroyal_blue=[0,20/256,82/256]np.random.se......
  • 前端使用 Konva 实现可视化设计器(2)
    作为继续创作的动力,继续求githubStar能超过50个(目前惨淡的0个),望多多支持。源码示例地址在上一章,实现了“无限画布”、“画布移动”、“网格背景”、“比例尺”、“定位缩放”,并简单叙述了它们实现的基本思路。关于位置和距离从源码里可以发现,多处依赖了Konva.Stag......
  • python基于flask汽车4s店服务销售配件管理系统django+echart 数据可视化_od8kr
     该系统采用python技术,结合flask框架使页面更加完善,后台使用MySQL数据库进行数据存储。系统主要分为三大模块:即管理员模块,员工管理模块和用户模块。本文从汽车服务流程分析入手,分析了其功能性需求和非功能性需求,设计了一个由管理员,用户和员工三部分组成的汽车服务管理系统。用......
  • 【NS-3学习(三)】可视化NetAnim使用笔记
    NS-3可视化NetAnim使用笔记1,下载安装包:包的下载hgclonehttp://code.nsnam.org/jabraham3/netanim2,解压并安装:(1)解压(2)NetAnim是基于Qt图形库的,所以需要事先安装qtsudoapt-getinstallqt4-dev-tools(3)但是这样可能会出现问题:E:Unabletolocatepackageqt4-de......
  • 基于巴法云物联网云平台构建可视化控制网页(以控制LED为例)
    0前言如今大大小小的物联网云平台非常多,但大部分要收取费用,免费的物联网云平台功能则有很多限制使用起来非常不方便。以百度云物联网云平台为例,它的物可视不支持发布主题,等于可视化界面只能作为数据监控而不具备双向通信的能力。为了解决这个问题,本文使用免费的巴法云物......
  • Docker 安装 Linux 系统可视化监控 Netdata
    docker安装netdata前提准备Docker两种方式部署Netdata1、使用dockerrun命令运行netdata服务2、使用dockercompose运行netdata服务Netdata服务可视化界面Netdata汉化处理前提准备说明:此处使用windows11安装的dockerdesktop&wsl2/apline环境......
  • P1002 [NOIP2002 普及组] 过河卒
    题目链接:从起点走到终点,最后一步一定是向右或向下走过来的,因此就可以列出状态转移方程。值得注意的是,对于横着和竖着的两条边界不可直接想当然地认为路径数一定等于\(1\),因为在中途可能会有控制点的存在,因此还是要老老实实地列出状态转移方程。由于边界时只会从一个方向递推过来......
  • 002_Numoy索引和切片
    定义可视化函数importnumpyasnpimportseabornassnsimportmatplotlib.pyplotaspltimportmathfrommatplotlibimportcmdefvisualize_2D(array,vmax,vmin):fig_width=math.ceil(array.shape[1]*0.5)fig_length=math.ceil(array.shape[0]......
  • 数据可视化高级技术Echarts(快速上手&柱状图&进阶操作)
    目录1.Echarts的配置 2.程序的编码3.柱状图的实现(入门实现)相关属性介绍(进阶):1.标记最大值/最小值2.标记平均值3.柱的宽度4.横向柱状图5.colorByseries系列(需要构造多组数据才能实现,下面有Sale和Sale1两组数据)data系列(同一组数据每个柱状图不同的显示)6.showBackgro......
  • 前端使用 Konva 实现可视化设计器(1)
    使用konva实现一个设计器交互,首先考虑实现设计器的画布。一个基本的画布:【展示】网格、比例尺【交互】拖拽、缩放“拖拽”是无尽的,“缩放”是基于鼠标焦点的。最终效果:基本思路:设计区域HTML由两个节点构成,内层挂载一个Konva.stage作为画布的开始。<template><......