fig.axes.text各参数详解

本文详细介绍Matplotlib中如何使用文本注释功能,包括位置设置、样式调整等关键参数,并提供多个实例帮助理解。

主要讲解以下几个参数:

# 文本显示内容在锚框的左上角显示
axes.text(rect.xy[0], rect.xy[1], labels[i],
          va='center', ha='center', fontsize=9, color=text_color,
          # facecolor就是锚框的填充色 lw即linewidth 就是锚框的边框的宽度 
          bbox=dict(facecolor=color, lw=0))

官方解释:

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

Signature: fig.axes.text(x, y, s, fontdict=None, **kwargs)
Docstring:
Add text to the Axes.

Add the text *s* to the Axes at location *x*, *y* in data coordinates.

Parameters
----------
x, y : float
    The position to place the text. By default, this is in data
    coordinates. The coordinate system can be changed using the
    *transform* parameter.  (文本内容放置的位置,默认情况放在数据轴,轴是可以通过transform属性改变的)
s : str
    The te
classdef InteractiveDataPlotter < handle properties dataMap fig axes plotHandles keyListbox end methods function obj = InteractiveDataPlotter(dataMap) % 验证输入 if ~isa(dataMap, 'containers.Map') error('输入必须是containers.Map对象'); end obj.dataMap = dataMap; % 创建UI界面 obj.createUI(); end function createUI(obj) % 创建主窗口 obj.fig = figure('Name', '交互式数据绘图器', 'Position', [100, 100, 1000, 600]); % 创建坐标轴 obj.axes = axes('Parent', obj.fig, 'Position', [0.3, 0.2, 0.65, 0.7]); title(obj.axes, '数据可视化'); grid(obj.axes, 'on'); hold(obj.axes, 'on'); % 创建列表框显示键名 obj.keyListbox = uicontrol('Style', 'listbox',... 'Parent', obj.fig,... 'Position', [20, 100, 200, 400],... 'String', keys(obj.dataMap),... 'Max', 2, 'Min', 0,... % 允许多选 'Callback', @(src,evt)obj.plotSelectedData()); % 创建保存按钮 uicontrol('Style', 'pushbutton',... 'Parent', obj.fig,... 'Position', [20, 50, 200, 30],... 'String', '保存为CSV',... 'Callback', @(src,evt)obj.saveToCSV()); % 初始绘制所有数据 obj.plotAllData(); end function plotAllData(obj) % 清除现有绘图 cla(obj.axes); % 获取所有键 keys = obj.dataMap.keys(); obj.plotHandles = gobjects(1, length(keys)); % 绘制所有数据 for i = 1:length(keys) key = keys{i}; data = obj.dataMap(key); % 确保数据是列向量 if isrow(data) data = data'; end % 绘制数据 obj.plotHandles(i) = plot(obj.axes, data, 'DisplayName', key); end % 添加图例 legend(obj.axes, 'show'); end function plotSelectedData(obj) % 获取选中的键 selectedIdx = get(obj.keyListbox, 'Value'); keys = get(obj.keyListbox, 'String'); selectedKeys = keys(selectedIdx); % 清除现有绘图 cla(obj.axes); % 绘制选中的数据 for i = 1:length(selectedKeys) key = selectedKeys{i}; data = obj.dataMap(key); % 确保数据是列向量 if isrow(data) data = data'; end % 绘制数据 plot(obj.axes, data, 'DisplayName', key); end % 添加图例 legend(obj.axes, 'show'); end function saveToCSV(obj) % 获取保存文件名 [filename, pathname] = uiputfile('*.csv', '保存CSV文件'); if isequal(filename, 0) || isequal(pathname, 0) return; % 用户取消 end fullPath = fullfile(pathname, filename); % 写入CSV文件 obj.writeMapToCSV(fullPath); % 显示成功消息 msgbox(sprintf('数据已保存到: %s', fullPath), '保存成功'); end function writeMapToCSV(obj, filename) % 获取所有键 keys = obj.dataMap.keys(); numKeys = numel(keys); % 找出最大数据长度 maxLength = 0; for i = 1:numKeys data = obj.dataMap(keys{i}); dataLength = numel(data); if dataLength > maxLength maxLength = dataLength; end end % 确保至少有一个数据点 if maxLength == 0 maxLength = 1; end % 创建数据表格 tableData = table(); % 为每个键添加数据列 for i = 1:numKeys key = keys{i}; data = obj.dataMap(key); % 确保数据是列向量 if isrow(data) data = data'; end % 确保长度一致 if numel(data) < maxLength % 填充NaN以匹配最大长度 paddedData = [data; nan(maxLength - numel(data), 1)]; else paddedData = data(1:maxLength); end % 添加到表格 tableData.(key) = paddedData; end % 写入CSV文件 writetable(tableData, filename); end end end 增加可以运算多个图像显示,比如我想看第一条数据线和第5条数据线。我可以用双击或者其他易于实现的方式来将某个或者某几个图像显示在一个界面中
最新发布
10-11
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值