Python数据可视化-第6章-坐标轴的定制
环境
开发工具
VSCode
库的版本
numpy==1.26.4
matplotlib==3.10.1
ipympl==0.9.7
教材
本书为《Python数据可视化》一书的配套内容,本章为第6章 坐标轴的定制
本章主要介绍了坐标轴的定制,包括向任意位置添加坐标轴、定制刻度、隐藏轴脊和移动轴脊。

参考
第6章-坐标轴的定制
6.1 坐标轴概述
在绘制图表的过程中,matplotlib会根据所绘图表的类型决定是否在绘图区域中显示坐标系,或者显示哪种类型的坐标系。
import matplotlib.pyplot as plt
# 获取当前坐标轴信息 gca = get current axis
cur_ax = plt.gca()
print(cur_ax,type(cur_ax))
print(" ".join([i for i in dir(cur_ax) if not i.startswith('__')]))
print(cur_ax.spines)
输出如下:
Axes(0.125,0.11;0.775x0.77) <class ‘matplotlib.axes._axes.Axes’>
ArtistList acorr add_artist add_callback add_child_axes add_collection add_container add_image add_line add_patch add_table angle_spectrum annotate apply_aspect arrow artists autoscale autoscale_view axes axhline axhspan axis axison axline axvline axvspan bar bar_label barbs barh bbox boxplot broken_barh bxp callbacks can_pan can_zoom child_axes cla clabel clear clipbox cohere collections containers contains contains_point contour contourf convert_xunits convert_yunits csd dataLim drag_pan draw draw_artist ecdf end_pan errorbar eventplot figure fill fill_between fill_betweenx findobj fmt_xdata fmt_ydata format_coord format_cursor_data format_xdata format_ydata get_adjustable get_agg_filter get_alpha get_anchor get_animated get_aspect get_autoscale_on
…
get_yscale get_yticklabels get_yticklines get_yticks get_zorder grid has_data have_units hexbin hist hist2d hlines ignore_existing_data_limits images imshow in_axes indicate_inset indicate_inset_zoom inset_axes invert_xaxis invert_yaxis is_transform_set label_outer legend legend_ lines locator_params loglog magnitude_spectrum margins matshow minorticks_off minorticks_on mouseover name patch patches pchanged pcolor pcolorfast pcolormesh phase_spectrum pick pickable pie plot plot_date properties psd quiver quiverkey redraw_in_frame relim remove remove_callback reset_position scatter secondary_xaxis secondary_yaxis semilogx semilogy set set_adjustable set_agg_filter set_alpha set_anchor set_animated set_aspect set_autoscale_on set_autoscalex_on set_autoscaley_on
…
set_yticks set_zorder sharex sharey specgram spines spy stackplot stairs stale stale_callback start_pan stem step sticky_edges streamplot table tables text texts tick_params ticklabel_format title titleOffsetTrans transAxes transData transLimits transScale tricontour tricontourf tripcolor triplot twinx twiny update update_datalim update_from use_sticky_edges viewLim violin violinplot vlines xaxis xaxis_date xaxis_inverted xcorr yaxis yaxis_date yaxis_inverted zorder
<matplotlib.spines.Spines object at 0x000001E84C3D5CA0>
6.2 向任意位置添加坐标轴 axes()函数
matplotlib支持向画布的任意位置添加自定义大小的绘图区域,同时显示坐标轴。通过pyplot模块的axes()函数创建一个Axes类的对象,并将Axes类的对象添加到当前画布中。
axes(arg=None, projection=None, polar=False, aspect, frame_on, **kwargs)
arg:支持None、4-tuple中任一取值,其中None表示使用subplot(111)添加的与画布同等大小的Axes 对象,4-tuple表示由4个浮点型元素(取值范围为0~1)组成的元组 (left, bottom, width, height) 。
projection:表示坐标轴的类型,可以是None、‘aitoff’、‘hammer’、‘lambert’、‘mollweide’、'polar’或’rectilinear’中的任一取值,也可以是自定义的类型。
polar:表示是否使用极坐标,若设为True,则其作用等价于projection=‘polar’。

import matplotlib.pyplot as plt
# 0.2,0.5,0.3,0.3 分别代表 左、下、宽、高
ax = plt.axes((0.2, 0.5, 0.3, 0.3))
ax.plot([1, 2, 3, 4, 4])
ax2 = plt.axes((0.6, 0.4, 0.2, 0.2))
ax2.plot([1, 2, 4, 4, 5])
plt.show()
输出如下:
还可以使用Figure类对象的
add_axes()方法向当前画布的任意位置上添加Axes类对象
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10, 6))
ax = fig.add_axes([0.2, 0.5, 0.3, 0.3])
# 0.2,0.5,0.3,0.3 分别代表 左、下、宽、高
ax.plot([1, 2, 3, 4, 4])
ax2 = fig.add_axes([0.6, 0.4, 0.2, 0.2])
ax2.plot([1, 2, 4, 3, 4])
plt.show()
输出如下:
6.3 定制刻度
6.3.1 定制刻度的位置和格式
matplotlib.ticker模块中提供了两个类:Locator和Formatter,分别代表刻度定位器和刻度格式器,用于指定刻度线的位置和刻度标签的格式。
刻度定位器
Locator是刻度定位器的基类,它派生了很多子类,通过这些子类构建的刻度定位器可以指定刻度的间隔及刻度的位置。
matplotlib.dates模块中还提供了很多与日期时间相关的定位器,关于这些定位器的说明如下表所示。
matplotlib也支持自定义刻度定位器,我们只需要定义一个Locator 的子类,并在该子类中重写___call__()方法即可。
使用matplotlib的set_major_locator()或set_minor_locator()方法设置坐标轴的主刻度或次刻度的定位器。
刻度格式器
Formatter是刻度格式器的基类, 它派生了很多子类,通过这些子类构建的刻度格式器可以调整刻度标签的格式。Formatter的常见子类如表所示。
matplotlib.dates模块中还提供了很多与日期时间相关的格式器,关于这些格式器的说明如下表所示。
matplotlib也支持自定义刻度格式器,只需要定义一个Formatter的子类,并在该子类中重写___call__()方法即可。
使用matplotlib的set_major_formatter()或set_minor_formatter()方法可以设置坐标轴的主刻度或次刻度的格式器。
import matplotlib.pyplot as plt
from datetime import datetime
from matplotlib.dates import DateFormatter, HourLocator
ax = plt.gca()
# 创建一个HourLocator定位器,间隔为2小时
hour_loc = HourLocator(interval=2)
# 将hour_loc设为x轴的主刻度定位器
date_fmt = DateFormatter('%Y/%m/%d')
ax.xaxis.set_major_locator(hour_loc)
ax.xaxis.set_major_formatter(date_fmt)
plt.tick_params(labelrotation=30)
输出如下:

代码如下:
import matplotlib.pyplot as plt
from matplotlib.dates import HourLocator, DateFormatter
import numpy as np
from datetime import datetime, timedelta# 生成时间序列数据
start_time = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
time_points = [start_time + timedelta(hours=i) for i in range(0,10,2)]# 0.2,0.5,0.3,0.3 分别代表 左、下、宽、高
ax = plt.axes((0.2, 0.5, 0.3, 0.3))
# 绘制时间序列数据
ax.plot(time_points, [1, 2, 3, 4, 4])# 创建一个HourLocator定位器,间隔为2小时
hour_loc = HourLocator(interval=2,)
# 创建一个DateFormatter格式器,格式为“小时:分钟”
date_fmt = DateFormatter("%H:%M")
# 将hour_loc设为x轴的主刻度定位器
ax.xaxis.set_major_locator(hour_loc)
# 将date_fmt设为x轴的主刻度格式器
ax.xaxis.set_major_formatter(date_fmt)
plt.tick_params(labelrotation=30)# ax2 = plt.axes((0.6, 0.4, 0.2, 0.2))
# ax2.plot([1, 2, 4, 4, 5])
plt.show()
6.3.2 定制刻度的样式 tick_params()函数
在matplotlib中,坐标轴的刻度有着固定的样式,例如,刻度线的方向是朝外的,刻度线的颜色是黑色的等。使用tick_params()函数可以定制刻度的样式。
tick_params(axis='both', **kwargs)
axis:表示选择操作的轴,可以取值为’x’、‘y’或’both’,默认为’both’。
which:表示刻度的类型,可以取值为’major’、‘minor’或’both’,默认为’major’。
direction:表示刻度线的方向,可以取值为’in’、‘out’或’inout’。
length:表示刻度线的长度,单位为磅。
width:表示刻度线的宽度,单位为磅。
color:表示刻度线的颜色。
pad:表示刻度线与刻度标签的距离。
labelsize:表示刻度标签的字体大小。
labelcolor:表示刻度标签的颜色。
bottom,top,left,right:表示是否显示下方、上方、左方、右方的刻度线。
labelrotation:表示刻度标签旋转的角度。

import matplotlib.pyplot as plt
from matplotlib.dates import HourLocator, DateFormatter
plt.tick_params(direction='out', length=6, width=2, colors='r')
还可以使用Axes类对象的
tick_params()方法或Axis类的set_tick_params()方法定制刻度的样式。
6.3.3 实例1:深圳市24小时的平均风速
本实例要求根据下表的数据,将时间列的数据作为x轴的刻度标签,将风速列的数据作为y轴的数据,使用plot()方法绘制
反映深圳市24小时平均风速的折线图。
# 01_average_wind_speed_in_shenzhen
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, HourLocator
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
dates = ['201910240','2019102402','2019102404','2019102406','2019102408','2019102410','2019102412', '2019102414','2019102416','2019102418','2019102420','2019102422','201910250' ]
x_date = [datetime.strptime(d, '%Y%m%d%H') for d in dates]
y_data = np.array([7, 9, 11, 14, 8, 15, 22, 11, 10, 11, 11, 13, 8])
fig = plt.figure()
ax = fig.add_axes((0.0, 0.0, 1.0, 1.0))
ax.plot(x_date, y_data, '->', ms=8, mfc='#FF9900')
ax.set_title(' 深圳市24小时的平均风速')
ax.set_xlabel('时间(h)')
ax.set_ylabel('平均风速(km/h)')
# 设置 x 轴主刻度的位置和格式
date_fmt = DateFormatter('%H:%M')
ax.xaxis.set_major_formatter(date_fmt)
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.tick_params(direction='in', length=6, width=2, labelsize=12)
ax.xaxis.set_tick_params(labelrotation=45)
plt.show()
输出如下:

6.4 隐藏轴脊
6.4.1 隐藏全部轴脊
matplotlib中的直角坐标系默认有4个轴脊,分别是
上轴脊、下轴脊、左轴脊和右轴脊,其中上轴脊和右轴脊并不经常使用,有些情况下可以将上轴脊和右轴脊隐藏。
使用pyplot的axis()函数可以设置或获取一些坐标轴的属性,包括显示或隐藏坐标轴的轴脊。
axis(option, *args, **kwargs)
以上函数的参数option可以接收布尔值或字符串,其中布尔值True或False表示显示或隐藏轴脊及刻度;字符串通常是以下任一取值:
‘on’:显示轴脊和刻度,效果等同于True。
‘off’:隐藏轴脊和刻度,效果等同于False。
‘equal’:通过更改轴限设置等比例。
‘scaled’:通过更改绘图框的尺寸设置等比例。
‘tight’:设置足够大的限制以显示所有的数据。
‘auto’:自动缩放。
Axes类的对象也可以使用axis()方法隐藏坐标轴的轴脊

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
polygon = mpathes.RegularPolygon(xy=(0.5, 0.5), numVertices=6, radius=0.2, color='g')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))
ax.add_patch(polygon)
# 隐藏全部轴脊
ax.axis('off')
plt.show()
多学一招:patches模块
matplotlib.patches是专门用于
绘制路径和形状的模块,该模块中提供了一些表示形状(诸如箭头、圆形、长方形等)的类,通过创建这些类的对象可以快速绘制常见的形状。常见形状对应的类及说明如下表所示。
以创建正多边形为例,RegularPolygon类构造方法的语法格式如下所示:
RegularPolygon(xy, numVertices, radius=5, orientation=0, **kwargs)
xy:表示中心点的元组(x,y) 。
numVertices:表示多边形顶点的数量。
radius:表示从中心点到每个顶点的距离。
orientation:表示多边形旋转的角度(以弧度为单位)。
polygon = mpathes.RegularPolygon((0.5, 0.5), numVertices=5,
radius=0.3, color='y')
通过Axes对象的add_patch()方法将图形添加到画布中。
ax = plt.axes([0.3, 0.3, 0.5, 0.5])
ax.add_patch(polygon)
6.4.2 隐藏部分轴脊
matplotlib可以只隐藏坐标轴的部分轴脊,只需要
访问spines属性先获取相应的轴脊,再调用set_color()方法将轴脊的颜色设为none即可。
matplotlib可以通过set_ticks_position()方法设置刻度线为’none’,通过set_yticklabels()方法设置刻度标签为空列表。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy = np.array([0.5,0.5])
polygon = mpathes.RegularPolygon(xy, 5, radius=0.2,color='y')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))
ax.add_patch(polygon)
# 依次隐藏上轴脊、左轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['left'].set_color('none')
ax.spines['right'].set_color('none')
# 插入如下代码
ax.yaxis.set_ticks_position('none')
ax.set_yticklabels([])
plt.show()
输出如下:

6.4.3 实例2:深圳市24小时的平均风速(隐藏部分轴脊)
在6.3.3小节的实例1中,折线图显示了全部的轴脊,但其内部的右轴脊和上轴脊并未起到任何作用,因此本实例要求
隐藏折线图的右轴脊和上轴脊。
# 02_average_wind_speed_in_shenzhen(2)
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, HourLocator
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
dates = ['201910240','2019102402','2019102404','2019102406','2019102408','2019102410','2019102412', '2019102414','2019102416','2019102418','2019102420','2019102422','201910250' ]
x_date = [datetime.strptime(d, '%Y%m%d%H') for d in dates]
y_data = np.array([7, 9, 11, 14, 8, 15, 22, 11, 10, 11, 11, 13, 8])
fig = plt.figure()
ax = fig.add_axes((0.0, 0.0, 1.0, 1.0))
ax.plot(x_date, y_data, '->', ms=8, mfc='#FF9900')
ax.set_title('深圳市24小时的平均风速')
ax.set_xlabel('时间(h)')
ax.set_ylabel('平均风速(km/h)')
date_fmt = DateFormatter('%H:%M')
ax.xaxis.set_major_formatter(date_fmt)
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.tick_params(direction='in', length=6, width=2, labelsize=12)
ax.xaxis.set_tick_params(labelrotation=45)
# 隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.show()
输出入下:

6.5 移动轴脊
6.5.1 移动轴脊的位置
matplotlib的Spine类中提供了一个可以设置轴脊位置的set_position()方法,通过这个方法可以将轴脊放置到指定的位置,以满足一些特定场景的需求。
set_position(self, position)
以上方法的
position参数表示轴脊的位置,它接收一个元组(position_type, amount),该元组中的第1个元素position_type代表位置的类型,第2个元素amount代表数量。
position_type支持以下任一取值。
‘outward’:表示将轴脊置于移出数据区域指定点数的位置。
‘axes’:表示将轴脊置于坐标系中的指定位置(amount范围为0.0~1.0)。
‘data’ :表示将轴脊置于指定的数据坐标的位置。
position参数还支持以下两个特殊的轴脊位置:
‘center’:值为(‘axes’, 0.5)。
‘zero’ :值为(‘data’, 0.0)。
需要注意的是,轴脊是刻度线和刻度标签的载体,当我们移动轴脊的位置时,刻度线和刻度标签会跟着轴脊的位置一起移动。



import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy = np.array([0.5,0.5])
polygon = mpathes.RegularPolygon(xy, 5, radius=0.2,color='y')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))
ax.add_patch(polygon)
# 隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
# 移动轴脊的位置
ax.spines['left'].set_position(('data', 0.5))
ax.spines['bottom'].set_position(('data', 0.5))
plt.show()
6.5.2 实例3:正弦与余弦曲线
正弦曲线和余弦曲线都属于周期性波浪线,它们在一个2π周期内重复出现。
本实例要求先生成100个位于-2 π和2 π之间的等差数列,再求等差数列中各个数值的正弦值和余弦值,根据这些
正弦值和余弦值绘制曲线。
# 03_sin_and_cos
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
x_data = np.linspace(-2 * np.pi, 2 * np.pi, 100)
y_one = np.sin(x_data)
y_two = np.cos(x_data)
fig = plt.figure()
ax = fig.add_axes((0.2, 0.2, 0.7, 0.7))
ax.plot(x_data, y_one, label='正弦曲线 ')
ax.plot(x_data, y_two, label='余弦曲线 ')
ax.legend()
ax.set_xlim(-2 * np.pi, 2 * np.pi)
ax.set_xticks([-2 * np.pi, -3 * np.pi / 2, -1 * np.pi, -1 * np.pi / 2, 0, np.pi / 2, np.pi, 3 * np.pi / 2, 2 * np.pi])
ax.set_xticklabels([r'$-2\pi$', r'$-3\pi/2$', r'$-\pi$', r'$-\pi/2$ ', r'$0$', r'$\pi/2$', r'$\pi$', r'$3\pi/2$', r'$2\pi$'])
ax.set_yticks([-1.0, -0.5, 0.0, 0.5, 1.0])
ax.set_yticklabels([-1.0, -0.5, 0.0, 0.5, 1.0])
# 隐藏右轴脊和上轴脊
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 移动左轴脊和下轴脊的位置
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
plt.show()
相关文章:
Python数据可视化-第6章-坐标轴的定制
环境 开发工具 VSCode库的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本书为《Python数据可视化》一书的配套内容,本章为第6章 坐标轴的定制 本章主要介绍了坐标轴的定制,包括向任意位置添加坐标轴、定制刻度、隐藏轴脊和移动轴脊。 参考 第…...
18认识Qt坐标系
平面直角坐标系(笛卡尔坐标系) 数学上的坐标系 右手坐标系 计算机中的坐标系 左手坐标系 坐标系的原点(0,0) 就是屏幕的左上角 /窗口的左上角 给 Qt 的某个控件,设置位置,就需要指定坐标.对于这个控件来说, 坐标系原点就是相对于父窗口/控件的. QPushButton 的父元素/父控件/父…...
动态循环表单+动态判断表单类型+动态判断表单是否必填方法
页面效果: 接口请求到的数据格式: list: [{demandType: "设备辅助功能要求",demandSettingList: [{id: "1907384788664963074",name: "测试表单",fieldType: 0,contentValue: "",vaildStatus: 0, // 0 非必填&a…...
keep-alive缓存
#keep-alive缓存动态路由的使用指南# 代码如下图 : <router-view v-slot"{ Component }"> <keep-alive :include"[Hot, Notifications, User, Setting, Test]"> <component :is"Component" …...
25.4.3学习总结【Java】
又是一道错题: 1. 班级活动https://www.lanqiao.cn/problems/17153/learning/?page1&first_category_id1&sortdifficulty&asc1&second_category_id3 问题描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师…...
Python入门(3):语句
目录 1 基本语句 1.1 表达式语句 1.2 赋值语句 2 控制流语句 2.1 条件语句 2.2 循环语句 while循环: for循环: 2.3 流程控制语句 1. break语句:退出整个循环体 2. continue语句:只跳过本次循环,还会进…...
运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)
运维之 Centos7 防火墙 1.介绍 Linux CentOS 7 防火墙/端口设置: 基础概念: 防火墙是一种网络安全设备,用于监控和控制网络流量,以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的…...
开发一个小程序需要多久时间?小程序软件开发周期
开发一个小程序所需时间受多种因素影响,以下为你详细列举: 一、需求复杂度。若只是简单展示类小程序,如企业宣传、产品介绍,功能单一,大概 1 - 2 周可完成。若涉及复杂交互,像电商小程序,涵盖商…...
【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林
文章目录 【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林 一、 什么是算法1. 算法的定义1.1 算法的五个特征1.2 好算法的特质 2. 时间复杂度3. 空间复杂度 【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林 💬欢…...
新增帧能耗指标|UWA Gears V1.0.9
UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。 本次版本更新主要新增帧能耗指标,帮助大家对每一帧的能耗进行精准监控,快速…...
蓝桥杯嵌入式16届———LCD模块
LCD有官方给我们提供的库,我们使用其非常简单,唯一要注意的就是LCD和LED的引脚冲突。 引脚状况 STM32CubeMX 端口配置 使能 比赛给的选手 资源数据包中有以下三个文件,(除去led相关的),将他们复制到自己…...
Ubuntu服务器挂载之前的数据硬盘
这里假设在挂载硬盘之前,您的硬盘从之前的服务器上正确卸载下来。请注意,以下任何操作不当都有可能导致硬盘数据丢失或损坏,如果您的数据非常重要,请及时备份。 1. 确认硬盘分区信息 使用以下命令查看磁盘信息,找到要…...
CMake在Windows环境下Visual Studio Code的使用
1,安装下载 地址:Visual Studio Code - Code Editing. Redefined 双击安装 选择安装路径 可勾选微软的AI工具 2,环境介绍 2.1 ,界面介绍 2.2中文包的安装 下载中文简体 汉化后的界面 2.3 配置C/C环境 VSCode安装好之后…...
注意力机制在大语言模型中的原理与实现总结
注意力机制在大语言模型中的原理与实现总结 1. 章节介绍 在大语言模型的学习中,理解注意力机制至关重要。本章节旨在深入剖析注意力机制的原理及其在大语言模型中的应用,为构建和优化大语言模型提供理论与实践基础。通过回顾神经网络基础及传统架构的局…...
大学生机器人比赛实战(二)软件篇
大学生机器人比赛深度开发指南:核心技术详解与实战代码解析 作为参加过多次机器人竞赛的选手,我将详细剖析比赛中的核心技术实现,包括软件架构设计、实时系统应用、各大赛事代码特点以及性能优化技巧。本指南将帮助你从代码层面深入理解如何…...
AI大模型从0到1记录学习 day13
第 13 章 Python高级语法 13.1 浅拷贝与深拷贝 直接赋值:对象的引用(别名),不产生拷贝。 浅拷贝:拷贝父对象,不会拷贝对象的内部的子对象。拷贝后只有第一层是独立的。 深拷贝:完全拷贝…...
大模型学习三:DeepSeek R1蒸馏模型组ollama调用流程
一、说明 目前DeepSeek R1及其蒸馏模型均支持使用ollama进行调用,可以在模型主页查看调用情况 deepseek-r1https://ollama.com/library/deepseek-r1 显存需求 ,我们显存是16G,可以玩好几个 二、以14B模型演示 1、安装ollama curl -fsSL htt…...
RAGFlow部署与使用介绍-深度文档理解和检索增强生成
ragflow部署与使用教程-智能文档处理与知识管理的创新引擎 1. ragflow简介 RAGFlow作为新一代智能文档处理平台,深度融合检索增强生成(RAG)技术与自动化工作流引擎,为企业级知识管理提供全栈解决方案。通过结合多模态解析、语…...
一文读懂 UML:基础概念与体系框架
UML 图是一种标准化的建模语言,在软件开发和系统设计等领域有着广泛的应用。以下是对 UML 图各类图的详细介绍: 1.用例图 定义:用例图是从用户角度描述系统功能的模型图,展现了系统的参与者与用例之间的关系。作用:帮…...
【AI赋能:58招聘数据的深度剖析之旅】
影刀出鞘,抓取数据 在当今数字化时代,数据分析已成为企业决策和发展的关键驱动力。而获取高质量的数据则是数据分析的首要任务。在这个信息爆炸的时代,网络上蕴含着海量的数据,其中招聘网站的数据对于人力资源分析、市场趋势研究…...
几何法证明卡特兰数_栈混洗
模型: 考虑从坐标原点 (0, 0) 到点 (n, n) 的路径,要求路径只能向右(x 方向)或向上(y 方向)移动,并且路径不能越过直线 y x(即始终满足 y< x )。这样的路径数量就是…...
Kafka的安装与使用(windows下python使用等)
一、下载 可以去官网下载:https://kafka.apache.org/downloads 版本可选择,建议下载比较新的,新版本里面自带zookeeper 二、安装 创建一个目录,此处是D:\kafka,将文件放进去解压 如果文件后缀是gz,解压…...
DataPermissionInterceptor源码解读
原文首发在我的博客:https://blog.liuzijian.com/post/mybatis-plus-source-data-permission-interceptor.html 目录 一、概述二、源码解读2.1 beforeQuery2.2 beforePrepare2.3 processSelect2.4 setWhere2.5 processUpdate2.6 processDelete2.7 getUpdateOrDelete…...
大模型中的参数规模与显卡匹配
在大模型训练和推理中,显卡(GPU/TPU)的选择与模型参数量紧密相关,需综合考虑显存、计算能力和成本。以下是不同规模模型与硬件的匹配关系及优化策略: 一、参数规模与显卡匹配参考表 模型参数量训练阶段推荐显卡推理阶…...
数据结构初阶: 顺序表的增删查改
顺序表 概念 顺序表是⽤⼀段物理地址连续的存储单元依次存储数据元素的线性结构,⼀般情况下采⽤数组存储。如图1: 顺序表和数组有什么区别? 顺序表的底层是用数组实现的,是对数组的封装,实现了增删查改等接口。 分…...
Spring Boot项目中策略模式的应用与实现
前言 在Spring Boot项目中,策略模式是一种非常重要的设计模式,它能够让我们定义一系列算法,并使它们可以互相替换。 策略模式通过将算法封装到独立的类中,从而使得代码中的算法可以独立于使用它的客户端变化。 这对于某些需求频…...
【机器学习中的基本术语:特征、样本、训练集、测试集、监督/无监督学习】
机器学习基本术语详解 1. 特征(Feature) 定义:数据的属性或变量,用于描述样本的某个方面。作用:模型通过学习特征与目标之间的关系进行预测。示例: 预测房价时,特征可以是 面积、地段、房龄。…...
MySQL全链路指南
目录 前言 第一章 MySQL基础入门 1.1 MySQL简介与安装 1.2 数据库基本操作 1.3 表结构与数据类型 第二章 SQL语言深度解析 2.1 DDL(数据定义语言) 2.2 DML(数据操作语言) 2.3 DQL(数据查询语言) 2…...
System.arraycopy()
在 Java 编程中,数组是一种常用的数据结构,用于存储相同类型的元素集合。在处理数组时,经常需要进行数组复制操作,例如将一个数组的部分或全部元素复制到另一个数组中。System.arraycopy() 方法是 Java 提供的一个高效的数组复制工…...
详解AI采集框架Crawl4AI,打造智能网络爬虫
大家好,Crawl4AI作为开源Python库,专门用来简化网页爬取和数据提取的工作。它不仅功能强大、灵活,而且全异步的设计让处理速度更快,稳定性更好。无论是构建AI项目还是提升语言模型的性能,Crawl4AI都能帮您简化工作流程…...




















