鸢尾花书实践和知识记录[编程1-11二维和三维可视化]

news2024/12/23 10:44:51

作者空间

文章目录

    • 思维导图
    • 函数使用
  • 二维可视化方案
    • 平面散点图
      • 散点图的示例
      • 代码1:绘制鸢尾花的散点图
      • 代码2Plotly绘制散点图
    • 数据类型和绘图工具的对应
  • 平面等高线
      • 代码3生成等高线
      • 网格数据
    • plotly.express
      • 关键的绘图函数
    • Plotly的另一个模块
    • 代码4 Plotly生成的
  • 热图
    • 代码5:鸢尾花热力图
    • 代码6使用plotly绘制
  • 三维可视化方案
    • 代码7:设置角度
    • 投影的两种方式
  • 三维散点图
    • 代码8
    • 代码9 plotly绘制
  • 三维线图
  • 用Matplotlib和Plotly可视化三维网格面
  • 三维等高线图
  • 箭头图

思维导图

在这里插入图片描述

函数使用

在这里插入图片描述

二维可视化方案

在这里插入图片描述

平面散点图

在这里插入图片描述
使用scatter函数
matplotlib.pyplot.scatter()
seaborn. Scatterplot()
可交互的散点图
plotly.express.scatter()
plotly.graph_objects.Scatter()

散点图的示例

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('_mpl-gallery')

# make the data
np.random.seed(3)
x = 4 + np.random.normal(0, 2, 24)
y = 4 + np.random.normal(0, 2, len(x))
# size and color:
sizes = np.random.uniform(15, 80, len(x))
colors = np.random.uniform(15, 80, len(x))

# plot
fig, ax = plt.subplots()

ax.scatter(x, y, s=sizes, c=colors, vmin=0, vmax=100)

ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
       ylim=(0, 8), yticks=np.arange(1, 8))

plt.show()

鸢尾花的数据说明

代码1:绘制鸢尾花的散点图

# 导入包
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
import numpy as np

# 加载鸢尾花数据集
iris = load_iris()
#(*, return_X_y=False, as_frame=False)
#返回(数据、目标)
#返回dataframe对象
#默认的是数组,
iris = load_iris(as_frame=True)

# 提取花萼长度和花萼宽度作为变量
sepal_length = iris.data[:, 0]
sepal_width = iris.data[:, 1]
target = iris.target

fig, ax = plt.subplots()

# 创建散点图
plt.scatter(sepal_length, sepal_width, c=target, cmap='rainbow')

# 添加标题和轴标签
#使用轴对象的写法
plt.title('Iris sepal length vs width')# ax.set_title()
plt.xlabel('Sepal length (cm)')
plt.ylabel('Sepal width (cm)')

# 设置横纵轴刻度
ax.set_xticks(np.arange(4, 8 + 1, step=1))
ax.set_yticks(np.arange(1, 5 + 1, step=1))

# 设定横纵轴尺度1:1
ax.axis('scaled')

# 增加刻度网格,颜色为浅灰
ax.grid(linestyle='--', linewidth=0.25, color=[0.7,0.7,0.7])

# 设置横纵轴范围
ax.set_xbound(lower = 4, upper = 8)
ax.set_ybound(lower = 1, upper = 5)

# 显示图形
plt.show()

在这里插入图片描述

代码2Plotly绘制散点图

可交互

无颜色区分的

# 导入包
import numpy as np
import plotly.express as px

# 从Ploly中导入鸢尾花样本数据
iris_df = px.data.iris() 

# 绘制散点图,不渲染marker
#dataframe,之后两行指定列
fig = px.scatter(iris_df, x="sepal_length", y="sepal_width", 
                 width = 600, height = 600,
                 labels={"sepal_length": "Sepal length (cm)",
                         "sepal_width":  "Sepal width (cm)"})
# 修饰图像
fig.update_layout(xaxis_range=[4, 8], yaxis_range=[1, 5])
xticks = np.arange(4,8+1)
yticks = np.arange(1,5+1)

fig.update_layout(xaxis = dict(tickmode = 'array',
                               tickvals = xticks))
fig.update_layout(yaxis = dict(tickmode = 'array',
                               tickvals = yticks))
fig.show()

有颜色区分

# 绘制散点图,渲染marker展示鸢尾花分类
fig = px.scatter(iris_df, x="sepal_length", y="sepal_width", 
                 color="species",
                 width = 600, height = 600,
                 labels={"sepal_length": "Sepal length (cm)",
                         "sepal_width": "Sepal width (cm)"})
# 修饰图像
fig.update_layout(xaxis_range=[4, 8], yaxis_range=[1, 5])
fig.update_layout(xaxis = dict(tickmode = 'array',
                               tickvals = xticks))
fig.update_layout(yaxis = dict(tickmode = 'array',
                               tickvals = yticks))

fig.update_layout(legend=dict(yanchor="top", y=0.99,
                              xanchor="left",x=0.01))
fig.show()

在这里插入图片描述

数据类型和绘图工具的对应

导入鸢尾花数据的三个途径。
大家可能发现,我们经常从不同的 Python 第三方库导入鸢尾花数据。本例用sklearn.datasets.load_iris(),这是因为 sklearn 中的鸢尾花数据将特征数据和标签数据分别保存,而且数据类型都是 NumPy Array,方便用 matplotlib 绘制散点图。
此外,NumPy Array 数据类型还方便调用 NumPy 中的线性代数函数。
我们也用 seaborn.load_dataset("iris") 导入鸢尾花数据集,数据类型为 Pandas DataFrame
数据帧列标为
sepal_length'、'sepal_width'、'petal_length'、'petal_width'、'species',
其中,标签中的独特值为三个字符串’setosa’、‘versicolor’、‘virginica’。
Pandas DataFrame 获取某列独特值的函数为 pandas.unique()。这种数据类型方便利用Seaborn 进行统计可视化。此外,Pandas DataFrame 也特别方便利用 Pandas 的各种数据帧工具。

下一章会专门介绍利用 Seaborn 绘制散点图和其他常用统计可视化方案。
在利用 Plotly 可视化鸢尾花数据时,我们会直接从 Plotly 中用
plotly.express.data.iris() 导入鸢尾花数据,数据类型也是 Pandas DataFrame。
这个数据帧的列标签为’sepal_length’、‘sepal_width’、‘petal_length’、
‘petal_width’, ‘species’、‘species_id’。前五列和 Seaborn 中鸢尾花数据帧相同,不同的是’species_id’这一列的标签为整数 0、1、2。

平面等高线

在这里插入图片描述
二元函数
在这里插入图片描述

代码3生成等高线

# 导入包
import numpy as np
import matplotlib.pyplot as plt 

# 生成数据
# 坐标轴
x1_array = np.linspace(-3,3,121)
x2_array = np.linspace(-3,3,121)
#网格
xx1, xx2 = np.meshgrid(x1_array, x2_array)
#xx1和xx2 (121, 121)
#最后生成的值也是(121, 121)
ff = xx1 * np.exp(- xx1**2 - xx2 **2)

# 等高线
fig, ax = plt.subplots()

CS = ax.contour(xx1, xx2, ff, levels = 20,
                cmap = 'RdYlBu_r', linewidths = 1)

fig.colorbar(CS)
ax.set_xlabel(r'$\it{x_1}$'); ax.set_ylabel(r'$\it{x_2}$')
ax.set_xticks([]); ax.set_yticks([])
ax.set_xlim(xx1.min(), xx1.max())
ax.set_ylim(xx2.min(), xx2.max())r
ax.grid(False)
ax.set_aspect('equal', adjustable='box')

在这里插入图片描述

# 填充等高线
fig, ax = plt.subplots()

CS = ax.contourf(xx1, xx2, ff, levels = 20,
                 cmap = 'RdYlBu_r')

fig.colorbar(CS)
ax.set_xlabel(r'$\it{x_1}$'); ax.set_ylabel(r'$\it{x_2}$')
ax.set_xticks([]); ax.set_yticks([])
ax.set_xlim(xx1.min(), xx1.max())
ax.set_ylim(xx2.min(), xx2.max())
#去掉了网格
ax. Grid(False)
ax.set_aspect('equal', adjustable='box')

在这里插入图片描述
上面两个的区别在于

  • ax.contourf 填充曲线
  • ax.contourr 曲线

网格数据

在这里插入图片描述

在这里插入图片描述
实际的存储格式
xx1横轴
xx2纵轴
在这里插入图片描述

plotly.express

plotly.express的示例

import plotly.express as px
df = px.data.gapminder()

fig = px.scatter(df.query("year==2007"),
 x="gdpPercap",
  y="lifeExp",
   size="pop", 
   color="continent",
 hover_name="country",#鼠标停留触发
 log_x=True, size_max=55)
fig.show()

在这里插入图片描述

不指定年份,

fig = px.scatter(df, x="gdpPercap", y="lifeExp",
                 animation_frame="year",
                  size="pop", color="continent",
                 hover_name="country",
                 log_x=True, size_max=55)
                 # fig.update_layout(xaxis_range=[0,10])
fig.update_layout(yaxis_range=[30,90])
fig.show()

是否可以在热图中使用这个,来查看相关性和其他属性。

在这里插入图片描述

关键的绘图函数

在这里插入图片描述

Plotly的另一个模块

plotly.graph_objects 复杂度是高于plotly.express的

代码4 Plotly生成的

# 导入包
import numpy as np
import matplotlib.pyplot as plt 
import plotly.graph_objects as go
# 生成数据
x1_array = np.linspace(-3,3,121)
x2_array = np.linspace(-3,3,121)

xx1, xx2 = np.meshgrid(x1_array, x2_array)
ff = xx1 * np.exp(- xx1**2 - xx2 **2)
# 等高线设置
#levels的字典
levels = dict(start=-0.5,end=0.5,size=0.05)
data = go.Contour(x=x1_array,y=x2_array,z=ff,  
        contours_coloring='lines',
        line_width=2,
        colorscale = 'RdYlBu_r',
        contours=levels)
# 创建布局
layout = go.Layout(
    width=600,   # 设置图形宽度
    height=600,  # 设置图形高度
    xaxis=dict(title=r'$x_1$'),
    yaxis=dict(title=r'$x_2$'))
# 创建图形对象
fig = go.Figure(data=data, layout=layout)

fig.show()

matplotlib 绘制各种二维的函数
peak function

z = 3 ( 1 − x ) 2 e − x 2 − ( y + 1 ) 2 − 10 ( x 5 − x 3 − y 5 ) e − x 2 − y 2 − 1 3 e − ( x + 1 ) 2 − y 2 . z=3(1-x)^{2}e^{-x^{2}-(y+1)^{2}}-10\biggl(\frac{x}{5}-x^{3}-y^{5}\biggr)e^{-x^{2}-y^{2}}-\frac{1}{3}e^{-(x+1)^{2}-y^{2}}. z=3(1x)2ex2(y+1)210(5xx3y5)ex2y231e(x+1)2y2.

绘制一下上面的函数

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 创建 x, y 的网格
x = np.linspace(-3, 3, 300)
y = np.linspace(-3, 3, 300)
x, y = np.meshgrid(x, y)

# 计算 z 的值
z = z_func(x, y)

# 绘制图形
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')

# 绘制曲面图
surf = ax.plot_surface(x, y, z, cmap='viridis')

# 添加颜色条
fig.colorbar(surf)

# 设置图形标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

在这里插入图片描述

怎么绘制等高线

import numpy as np
import matplotlib.pyplot as plt 
# 定义函数
def z_func(x, y):
    term1 = 3 * (1 - x) ** 2 * np.exp(-x ** 2 - (y + 1) ** 2)
    term2 = -10 * ((x / 5) - x ** 3 - y ** 5) * np.exp(-x ** 2 - y ** 2)
    term3 = -(1 / 3) * np.exp(-(x + 1) ** 2 - y ** 2)
    return term1 + term2 + term3

# 创建 x, y 的网格
x = np.linspace(-3, 3, 300)
y = np.linspace(-3, 3, 300)
x, y = np.meshgrid(x, y)

# 计算 z 的值
z = z_func(x, y)
fig, ax = plt.subplots()
#说明level可以指定数量,也可以是数组,指定绘制等高线的位置[-0.4,-0.2,0,0.2,0.4]
CS = ax.contourf(x, y, z, levels = 20,
                 cmap = 'RdYlBu_r',linewidths=1.0)

fig.colorbar(CS)
ax.set_xlabel(r'$\it{x_1}$'); ax.set_yla bel(r'$\it{x_2}$')
ax.set_xticks([]); ax.set_yticks([])
ax.set_xlim(x.min(), x.max())
ax.set_ylim(y.min(), y.max())
ax.grid(True)
ax.set_aspect('equal', adjustable='box')

在这里插入图片描述
在这里插入图片描述

热图

不是矢量图,不推荐。
在这里插入图片描述
尝试使用seaborn和Plotly
在这里插入图片描述
在这里插入图片描述

代码5:鸢尾花热力图

# 导入包
import matplotlib.pyplot as plt 
import seaborn as sns 
iris_sns = sns.load_dataset("iris") 
# 绘制热图
fig, ax = plt.subplots()

#选择绘制的是所有的列,对dataframe使用序号进行切片,序号为零到-1列,不取物种
#热图映射的最小值和最大值

sns.heatmap(data=iris_sns.iloc[:,0:-1],
            vmin = 0, vmax = 8,
            ax = ax,#在那个轴上绘制
            yticklabels = False,#不设置y轴
            xticklabels = ['Sepal length', 'Sepal width', 
                           'Petal length', 'Petal width'],
            cmap = 'RdYlBu_r')

在这里插入图片描述

代码6使用plotly绘制

# 导入包
import matplotlib.pyplot as plt 
import plotly.express as px

# 从Plotly中导入鸢尾花样本数据
df = px.data.iris() 
# 创建Plotly热图
fig = px.imshow(df.iloc[:,0:-2], text_auto=False,
                width = 600, height = 600,
                x = None, zmin=0, zmax=8,
                color_continuous_scale = 'viridis')

# 隐藏 y 轴刻度标签
fig.update_layout(yaxis=dict(tickmode='array',tickvals=[]))

# 修改 x 轴刻度标签
x_labels = ['Sepal length', 'Sepal width', 
            'Petal length', 'Petal width']
x_ticks  = list(range(len(x_labels)))
fig.update_xaxes(tickmode='array',tickvals=x_ticks,
                 ticktext=x_labels)
fig.show()

在这里插入图片描述
在这里插入图片描述

三维可视化方案

在绘制图像时,我们首要考虑视角的问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Matplotlib设置视角和相机角度
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

代码7:设置角度

import matplotlib.pyplot as plt
# 导入Matplotlib的绘图模块
fig = plt.figure()
# 创建一个新的图形窗口

ax = fig.add_subplot(projection='3d')
# 在图形窗口中添加一个3D坐标轴子图

ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
# 设置坐标轴的标签

ax.set_proj_type('ortho')
# 设置投影类型为正交投影 (orthographic projection)

ax.view_init(elev=30, azim=30)
# 设置观察者的仰角为30度,方位角为30度,即改变三维图形的视角

ax.set_box_aspect([1,1,1])
# 设置三个坐标轴的比例一致,使得图形在三个方向上等比例显示

plt.show()
# 显示图形

在这里插入图片描述
设置的elev(仰角)和azim(方位角)的坐标布局

投影的两种方式

上面给出的六种方式是正交投影
在这里插入图片描述
透视效果符合人眼,但是会造成误判。

在这里插入图片描述

fig.layout.scene.camera.projection.type = "orthographic"

在这里插入图片描述
此外透视投影还会有焦距参数,对显示的图像造成影响。
在这里插入图片描述

三维散点图

代码8

# 导入包
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets

# 加载鸢尾花数据集
iris = datasets.load_iris()
# 取出前三个特征作为横纵坐标和高度
X = iris.data[:, :3]
y = iris.target

# 创建3D图像对象
fig = plt.figure()
#设置3d
ax = fig.add_subplot(111, projection='3d')

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

# 设置坐标轴标签
ax.set_xlabel('Sepal length')
ax.set_ylabel('Sepal width')
ax.set_zlabel('Petal length')
# 设置坐标轴取值范围
ax.set_xlim(4,8); ax.set_ylim(1,5); ax.set_zlim(0,8)
# 设置正交投影
ax.set_proj_type('ortho')
# 显示图像
plt.show()

在这里插入图片描述

代码9 plotly绘制

import plotly.express as px
# 导入鸢尾花数据
df = px.data.iris()
fig = px.scatter_3d(df, 
                    x='sepal_length', 
                    y='sepal_width', 
                    z='petal_length',
                    size = 'petal_width',
                    color='species')

fig.update_layout(autosize=False,width=500,height=500)
fig.layout.scene.camera.projection.type = "orthographic"
fig.show()

在这里插入图片描述

可旋转
在这里插入图片描述

三维线图

在这里插入图片描述

在这里插入图片描述

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

# 生成随机游走数据
num_steps = 300
t = np.arange(num_steps)
#正态分布
#累加的结果是同形状的累加和
x = np.cumsum(np.random.standard_normal(num_steps))
y = np.cumsum(np.random.standard_normal(num_steps))
z = np.cumsum(np.random.standard_normal(num_steps))

# 用 Matplotlib 可视化
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_xticks([]); ax.set_yticks([]); ax.set_zticks([])
# 设置正交投影
ax.set_proj_type('ortho')
# 设置相机视角
ax.view_init(elev = 30, azim = 120)
# 显示图像
plt.show()

在这里插入图片描述

# 用 Plotly 可视化
fig = go.Figure(data=go.Scatter3d(
    x=x, y=y, z=z,
    marker=dict(size=4,color=t,colorscale='Viridis'),
    line=dict(color='darkblue', width=2)))

fig.layout.scene.camera.projection.type = "orthographic"
fig.update_layout(width=800,height=700)
fig.show()  # 显示绘图结果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

用Matplotlib和Plotly可视化三维网格面

在这里插入图片描述
和平面等高线类似

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

# 生成曲面数据
x1_array = np.linspace(-3,3,121)
x2_array = np.linspace(-3,3,121)

xx1, xx2 = np.meshgrid(x1_array, x2_array)
ff = xx1 * np.exp(- xx1**2 - xx2 **2)

# 用 Matplotlib 可视化三维曲面
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot_surface(xx1, xx2, ff, cmap='RdYlBu_r')

# 设置坐标轴标签
ax.set_xlabel('x1'); ax.set_ylabel('x2'); ax.set_zlabel('f(x1,x2)')
# 设置坐标轴取值范围
ax.set_xlim(-3,3); ax.set_ylim(-3,3); ax.set_zlim(-0.5,0.5)
# 设置正交投影
ax.set_proj_type('ortho')
# 设置相机视角
ax.view_init(elev = 30, azim = 150)
plt.tight_layout()
plt.show()
# 用 Plotly 可视化三维曲面
fig = go.Figure(data=[go.Surface(z=ff, x=xx1, y=xx2, 
                                 colorscale='RdYlBu_r')])
fig.layout.scene.camera.projection.type = "orthographic"
fig.update_layout(width=800,height=700)
fig.show()

在这里插入图片描述

三维等高线图

在这里插入图片描述

在这里插入图片描述

箭头图

# 定义二维列表
A = [[0,5],
     [3,4],
     [5,0]]
# 自定义可视化函数
def draw_vector(vector,RBG): 
    plt.quiver(0, 0, vector[0], vector[1],angles='xy', 
               scale_units='xy',scale=1,color = RBG,
               zorder = 1e5)
        
fig, ax = plt.subplots()
v1 = A[0] # 第一行向量
draw_vector(v1,'#FFC000')
v2 = A[1] # 第二行向量
draw_vector(v2,'#00CC00')
v3 = A[2] # 第三行向量
draw_vector(v3,'#33A8FF')

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

在这里插入图片描述

# 自定义可视化函数
def draw_vector_3D(vector,RBG): 
    plt.quiver(0, 0, 0, vector[0], vector[1], vector[2],
               arrow_length_ratio=0, color = RBG,
               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,'#FFBBFF')

ax.set_xlim(0,5)
ax.set_ylim(0,5)
ax.set_zlim(0,5)
ax.set_xlabel('x1')
ax.set_ylabel('x2')
ax.set_zlabel('x3')
ax.view_init(azim = 30, elev = 25)
ax.set_box_aspect([1,1,1])

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2185455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

以旅游购物贸易方式报关出口的货物是什么意思

旅游购物贸易方式的定义 ‌旅游购物贸易‌是指国内外旅游者通过旅游渠道,携带外币现钞、外币票据入境,到外汇指定银行兑换成人民币,并在特定区域进行商品采购、报检、报关后,将所购货物运回国内进行销售的贸易行为。这种贸易方式通…

官方外卖霸王餐对接接口渠道如何选择?

对接官方外卖霸王餐接口渠道通常涉及以下步骤: 选择服务提供商:选择一个提供外卖霸王餐API接口服务的平台。注册与申请:在选定服务提供商的平台上进行注册并创建账号,然后提交API接口使用申请。获取接口文档和密钥:申…

CSS基础-常见属性

6、CSS三大特性 6.1 层叠性 如果样式发生冲突,则按照优先级进行覆盖。 6.2 继承性 元素自动继承其父元素、祖先元素所设置的某些元素,优先继承较近的元素。 6.3 优先级 6.3.1 简单分级 1、内联样式2、ID选择器3、类选择器/属性选择器4、标签名选择器/…

SpringBoot框架下的社区医院信息系统开发

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理社区医院信息平台的相关信息成为必然。开发…

钢琴灯品牌排行榜前十名有哪些?护眼灯钢琴灯品牌排行榜

钢琴灯品牌排行榜前十名有哪些?要说近期比较火爆的家电产品,那一定绕不开护眼灯钢琴灯。作为能够提高光线质量,帮助我们营造舒适环境的热门好物,其受到了很多专业人士的认可。但是作为一名专业的家电测评师,我想在此提…

找到字符串中第一个匹配项的下标(c语言)

1./给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 //示例 1: //输入:haystac…

plt用数组显示图像

目录 plt.imshow实战 plt.imshow plt.imshow 可以用来显示二维数组表示的图像,也可以用来显示热图(heatmap)等。基本语法如下: plt.imshow(X, cmapviridis, interpolationnearest)参数说明: X:二维数组&…

基础岛第5关:XTuner微调个人小助手认知

进入开发机 克隆Tutorial仓库 mkdir -p /root/InternLM/Tutorialgit clone -b camp3 https://github.com/InternLM/Tutorial /root/InternLM/Tutorial 创建虚拟环境 在安装 XTuner 之前,我们需要先创建一个虚拟环境。使用 Anaconda 创建一个名为 xtuner0121 的虚拟…

工作日志:nvm版本控制遇到的一系列问题。

1、安装vue3可使用的富文本编辑器。(https://www.wangeditor.com/v5/for-frame.html#demo-1) npm install wangeditor/editor-for-vuenext --save2、为同时拥有两个类的元素设置样式,组合选择器是通过在选择器中并列写入两个类名来实现的&am…

openpnp - 执行M400命令后,超时错误的解决方法

文章目录 openpnp - 执行M400命令后,超时错误的解决方法概述笔记备注END openpnp - 执行M400命令后,超时错误的解决方法 概述 在X轴齿隙校正时,出现M400的命令超时错误。能重现。 查了资料,有人遇到过。看了github上的一个帖子(…

STM32(四)LED闪烁、流水灯及蜂鸣器操作

小节任务:在对GPIO函数初始化操作及配置好输入或输出模式后,使用GPIO的输入输出函数控制LED闪烁、流水灯及蜂鸣器操作,本小节先使用GPIO的四个输出函数 SetBits函数将指定端口设置为高电平 ResetBits函数将指定端口设置为低电平 WriteBit根据…

Tiny-universe手戳大模型TinyRAG--task4

TinyRAG 这个模型是基于RAG的一个简化版本,我们称之为Tiny-RAG。Tiny-RAG是一个基于RAG的简化版本,它只包含了RAG的核心功能,即Retrieval和Generation。Tiny-RAG的目的是为了帮助大家更好的理解RAG模型的原理和实现。 1. RAG 介绍 LLM会产…

Linux中的进程间通信之共享内存

共享内存 共享内存示意图 共享内存数据结构 struct shmid_ds {struct ipc_perm shm_perm; /* operation perms */int shm_segsz; /* size of segment (bytes) */__kernel_time_t shm_atime; /* last attach time */__kernel_time_t shm_dtime; /* last detach time */__kerne…

OpenGL笔记之事件驱动设计将相机控制类和应用程序类分离

OpenGL笔记之事件驱动设计将相机控制类和应用程序类分离 —— 2024-10-02 下午 code review! 文章目录 OpenGL笔记之事件驱动设计将相机控制类和应用程序类分离1.代码图片2.分析3.UML4.代码 1.代码图片 运行 Mouse button 1 pressed at (100, 200) Mouse dragged by (50, 50)…

老年人最真实的养老需求

子孝父心宽。(陈元靓) 向往的养老胜地 下文节选(有删改): 中消协发布报告 揭示老年人最真实的养老服务需求 主页: 博客 文章目录 前言1. 需求端1.1 居家养老更关注家政餐饮等“日常所需”1.2 机构养老的需求重在“医…

猫咪尿闭的症状有哪些?适合尿闭猫咪的猫罐头盘点

刚开始养猫的时候只喂猫粮,也没督促孩子喝水,也没喂猫罐头,结果猫咪尿闭了,每次上厕所都在惨叫,完全无法排尿。带去医院治疗,前前后后总共花了8000,真实花钱买教训。我总结了一下猫咪尿闭时会出…

kettle从入门到精通 第八十九课 ETL之kettle kettle jms activemq使用教程

场景:群里有小伙伴求助jms activemq如何使用kettle 进行消费数据,之前连接过kafka,rabbtimq,想着activemq应该也没啥难度,结果低估了activemq。盘他!!! 插曲:ActiveMq 有…

SQL连接Python

对于运营部门的Yoyo来说,她想要知道夜曲优选的订单都来自哪些省份,每个省份的总订单数以及总订单金额分别是多少。 这时小鹿就会通过SQL对连接的数据库进行查询,再将结果传递给Python处理,并帮助Yoyo生成可视化图表。 我们先来快…

工程师 - Github文件访问加速

如果是下载单独的又比较大的Github上的文件,网速较差时,可以使用镜像网站,比如下面这个工具。 GitHub 文件加速 - Sonder (akams.cn) GitHub 文件加速 - Sonder 另外,也可以在搜索引擎里直接搜索“Github 文件加速”,…

MySQL高阶2041-面试中被录取的候选人

目录 题目 准备数据 分析数据 总结 题目 编写解决方案,找出 至少有两年 工作经验、且面试分数之和 严格大于 15 的候选人的 ID 。 可以以 任何顺序 返回结果表。 准备数据 Create table If Not Exists Candidates (candidate_id int, name varchar(30), yea…