- echarts X轴文本太长 formatter自定义文本的显示方式
每一天,每一步
EChartsechartsjavascriptecmascript
如果ECharts中X轴的文本太长,可以通过设置axisLabel的rotate属性来旋转标签,或者使用formatter函数来自定义文本的显示方式。另外,可以开启axisLabel的interval属性来控制显示的标签的间隔。option={tooltip:{},xAxis:{type:'category',data:['这是一段非常长的文本','短文本','另一段长文本','另一段长文本'],
- echarts根据数量级设置最大值最小值为整百的数
每一天,每一步
EChartsecharts前端javascript
在ECharts中,可以通过设置yAxis的min和max属性来控制y轴的最大值和最小值。代码:option={yAxis:{type:'value',min:function(value){returnvalue.min-(value.min%100);},max:function(value){returnvalue.max>0?(value.max-(value.max%100)+100):
- Flutter学习之九 ListView
MQ_Twist
极端很容易,平衡才是最难的。Flutter学习之八Container前言Flutter中的ListView的地位,就好比于iOS中的UITableView,算是最常用的可滚动组件之一,它可以沿一个方向线性排布所有子组件,并且它也支持列表项懒加载(在需要时才会创建)。默认构造函数我们看看ListView的默认构造函数定义:ListView({...//可滚动widget公共参数AxisscrollD
- pandas中的concat函数:详尽指南
小桥流水---人工智能
Python程序代码人工智能机器学习算法pandas
concat目录1.`concat`简介2.语法和参数3.连接DataFrame按行连接(axis=0)按列连接(axis=1)4.处理索引忽略索引使用键5.添加层次索引6.合并DataFrame7.最佳实践和提示8.结论concat函数是pandas库中一个强大的工具,用于沿特定轴连接多个DataFrame或Series对象。本指南将深入介绍concat函数,涵盖其语法、参数和实际示例。目录co
- Python 数据分析— Numpy 基本操作(下)
fjwangxi
#python数据分析numpypython数据分析均值算法
文章目录学习内容:一、数组的合并与分割二、数组的聚合运算三、其他操作学习内容:一、数组的合并与分割(一)数组的合并操作1.concatenate((数组1,数组2,…),axis=[默认0:列数同,纵向合并|1:行数同,横向合并|None:合并为一维数组)a=np.array([[1,2],[3,4]])b=np.array([[5,6],[7,8]])np.concatenate((a,b),a
- python数值误差
NorthFish北海有鱼
pythonpython机器学习人工智能
最近在用fenics框架跑有限元代码,其中有一个部分是把在矩阵里定义的初始值,赋值到有限元空间里,这就涉及到了初始矩阵和有限元空间坐标的转化,部分代码如下foriinrange(len(dof_coordinates)):#x,y=dof_coordinates[i]#原本的区间是0到physical_length的,根据num_grids_per_axis长度进行缩放.#ix,iy=min(in
- 2005国内IC Design House一览
xiaomantoubaba
思科咨询通讯电信中兴网络
统计结果上海地区136家北京地区122家广东地区60家江苏地区32家陕西地区29家四川地区15家浙江地区15家其他地区27家上海地区1.上海伟岭集成电路设计有限公司2.至益电子技术有限公司3.宜硕科技(上海)有限公司4.上海贝尔阿尔卡特股份有限公司5.上海交大创奇微系统科技有限公司6.上海汉芯半导体科技有限公司7.AxisSystems(上海代表处)8.奈米闪芯集成电路(上海)有限公司9.福华先进
- pytorch中的gather函数_Pytorch中torch.gather函数祥解
陈村
原创申明:本文为作者原创,转载请注明出处!引言:在多分类中,torch.gather常用来取出标签所对应的概率,但对于刚开始接触Pytorch的同学来说,torch.gather()可能不太好理解,这里做一些说明和演示,帮助理解。官方说明gather(input',dim,index,out=None,sparse_grad=False)Gathersvaluesalonganaxisspecif
- Pytorch中torch.gather和torch.scatter函数理解
尘世猫
pytorch深度学习pytorch深度学习python
torch.gather()torch.gather(input,dim,index,*,sparse_grad=False,out=None)→Tensor参数解释:input(Tensor)–thesourcetensordim(int)–theaxisalongwhichtoindexindex(LongTensor)–theindicesofelementstogathersparse_g
- 自学成才Flutter 弹性布局、线性布局
高级技术工程师
flutterflutter
本文我们要介绍Flutter中布局Widget,包括弹性布局、线性布局流式布局和层叠布局。Flutter中文网Flutter开发一、弹性布局--FlexFlex类似Android中的FlexboxLayout,和Expanded配合使用可以实现子Widget按照一定比例来分配父容器空间。使用:Flex(direction:Axis.horizontal,children:[...],)其中dire
- 一位Android程序员入坑Flutter后整理出一份超详细的学习笔记
flutter架构师
程序员面试android移动开发
实际上Flutter没有xml了,并且是通过Widgets的嵌套来实现一个布局的。如:Center是一个可以把子View放置在中央的容器;Row对应的就是LinearLayout+Horizontal,Column对应的就是LinearLayout+Vertical,他们都具备一个属性叫做crossAxisAlignment,有点类似gravity,来控制子View相对于父View的位置。Expa
- MATLAB绘制GIF格式的动态点和动态曲线随动
雍珑庚
Matlab仿真专栏matlab开发语言
代码如下clc;clear;closeall;fig=figure;axis([0,2*pi,-1,1]);x=linspace(0,2*pi,20);y=sin(x);h=animatedline("Color",'r',"Marker","o","MarkerSize",10,"LineWidth",3);im=cell(1,length(x));fori=1:length(x)addpoin
- echarts柱形图X轴Y轴相关配置
船长㉿
可视化
可配置XY轴刻度线,字体大小,柱形图大小颜色等constoptions={tooltip:{trigger:'axis',axisPointer:{//坐标轴指示器,坐标轴触发有效type:'shadow'//默认为直线,可选为:'line'|'shadow'},textStyle:{//鼠标hover遮罩层字体大小fontSize:'12'}},xAxis:[{data:['大学食堂100间',
- android自定义view之画圆随着手指移动
✎ℳ๓Eternity✾
进阶View画圆可以跟随手指移动
publicclassMyViewextendsView{privatePaintmFanPaint,mTextPaint;//扇形画笔和文字画笔publicfloatAxisX=100;publicfloatAxisY=100;publicMyView(Contextcontext){super(context);init();}publicMyView(Contextcontext,Attri
- np.percentile函数详解
肥猪猪爸
大数据人工智能pythonnumpy数据结构数据统计算法
⭐️np.percentile函数np.percentile`是NumPy库中的一个函数,用于计算给定数据数组的指定百分位数。百分位数表示数据中有多少比例的值小于或等于某个值,例如,第25百分位数表示数据中有25%的值小于或等于这个值。np.percentile函数的语法numpy.percentile(a,q,axis=None,out=None,overwrite_input=False,me
- Springboot-RPCServiceClient调用WebService客户端发送短信
ZHOU_VIP
MACjava前端服务器
要在SpringBoot应用程序中使用RPCServiceClient调用WebService客户端发送短信,可以按照以下步骤进行:步骤1:添加依赖首先,在pom.xml文件中添加Axis2的相关依赖。pom.xmlorg.apache.axis2axis2-kernel1.7.9org.apache.axis2axis2-transport-http1.7.9org.apache.axis2ax
- 岩土工程中的有限单元法:渗流问题的理论探索与编程实践
2401_83402415
岩土岩土工程PlaxisAbaqusComsolParaviewFlac3D有限单位法
有限单元法在岩土工程问题中应用非常广泛,很多商业软件如Plaxis/Abaqus/Comsol等都采用有限单元解法。尽管各类商业软件使用方便,但其使用对用户来说往往是一个“黑箱子”。相比而言,开源的有限元程序计算方法透明、计算过程可控,用户可根据自己的需求进行必要的修改,这一点对于科研人员特别重要。岩土工程中的渗流问题(后续将进行强度问题、固结问题等专题),如何一步一步地搭建自己的模型,包括前处理
- SpringBoot -在Axis2中,RPCServiceClient调用WebService
ZHOU_VIP
MACjava开发语言
在Axis2中,RPCServiceClient是一种用于调用WebService的客户端实现。下面是如何将它们结合起来使用的一个示例:步骤1:添加依赖首先,在pom.xml文件中添加Axis2的相关依赖。org.apache.axis2axis2-kernel1.7.9org.apache.axis2axis2-transport-http1.7.9org.apache.axis2axis2-t
- Qt使用QCustomPlot绘制动态曲线简单记录
Coder-Deng-123
qt前端开发语言
本文主要记录本人使用QCustomPlot中的setData()绘制实时曲线的过程,包括一些QCustomPlot的简单设置和使用,具体安装QCustomPlot的过程不做介绍。具体需求是根据一个实时回传的数据绘制动态曲线,横坐标显示时间,纵坐标显示值。使用setData()绘制曲线需要自己设置两个数组QVectorxAxisData;//x轴的数据QVectorlineOne;//曲线1QVec
- Llama开源代码详细解读(2)
江安的猪猪
大语言模型llama
FlashAttentionifis_flash_attn_available():#检查flashattention的可用性fromflash_attnimportflash_attn_func,flash_attn_varlen_funcfromflash_attn.bert_paddingimportindex_first_axis,pad_input,unpad_input#noqaFla
- 一般什么情况下使用 | tojson转换
壹紙卿紓
javascript
xAxis:[{type:'category',data:{{row|tojson}},axisTick:{alignWithLabel:true}}],yAxis:[{type:'value'}],series:[{name:'Direct',type:'bar',barWidth:'60%',data:{{columns|tojson}}为什么有了|tojson才能显示图,没有|tojson就
- 如何使用axiso发出异步请求
刘媚-海外
javascriptaxiso
1.停止启动的脚手架工程命令行中执行npmiaxios-S2.在main.js中导入//引入Axiosimportaxiosfrom'axios'//Vue.prototype.xxx给Vue添加一个全局的变量//添加的全局变量可以在任意的*.vue文件中通过this.xxx访问Vue.prototype.axios=axios3.请求代码function(){//发出异步请求this.axiso
- Unity两行代码控制前后左右,并解决倒车反向问题
谢泽浩
unity游戏引擎
前进后退一直往本地坐标系的正方向加(0,0,1)即可。this.transform.Translate(Input.GetAxis("Vertical")*Vector3.forward*Time.deltaTime*MoveSpeed,Space.Self);左右旋转如果在倒车的时候按住左键,应该向左后方移动倒车出现错误的写法该写法会向右后方移动this.transform.Rotate(Vec
- 鸿蒙开发系列教程(二十二)--List 列表操作(1)
huazi99
鸿蒙harmonyos华为
列表是容器,当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。用于呈现同类数据类型或数据类型集,例如图片和文本List、ListItemGroup、ListItem关系列表方向1、概念列表的主轴方向是指子组件列的排列方向,也是列表的滚动方向。垂直于主轴的轴称为交叉轴,其方向与主轴方向相互垂直。2、设置主轴方向List组件主轴默认是垂直方向,listDirection默认为Axis.V
- Unity3D 游戏开发中如何判断几何形状的位置关系详解
Thomas_YXQ
python开发语言unity游戏引擎
前言在Unity3D游戏开发中,经常需要判断不同几何形状之间的位置关系,以便进行碰撞检测、物体运动和触发事件等操作。本文将详细介绍几种常见的几何形状位置关系判断方法,并给出相应的技术详解和代码实现。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀AABB包围盒AABB(AxisAlignedBoundingBox)是一种与坐标轴对齐的矩形包围盒,通过比较两个AABB包围
- echarts图表中的基本设置参数
是程序喵呀
echarts前端javascript
取消显示坐标值axisLabel:{show:false}取消坐标轴刻度线axisTick:{show:false}取消网格线splitLine:{show:false}去除y轴的线//写在yAxis里面axisLine:{show:false},axisTick:{show:false},去除y轴轴线(背景线)splitLine:{show:false,lineStyle:{type:'dash
- matlab绘制contourf 和 pcolor 卫星数据图caxis并设置colorbar范围
拾穗哥
matlab经验分享
1contourfx=reshape(data1(:,1),1800,1320);y=reshape(data1(:,2),1800,1320);z=reshape(h,1800,1320);[C,H]=contourf(x,y,z,100);%contourf(peaks(20),10);axisequalset(H,'LineColor','none');colormap('jet');%h=
- java webservice 接收数据_java向webService(java)接口请求并接收数据
LaserComposites
javawebservice接收数据
importjava.net.URL;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjavax.xml.namespace.QName;importjavax.xml.rpc.ParameterMode;importorg.apache.axis.cl
- matlab画调度甘特图
谢师傅season
甘特图算法matlab
所采用案例为高亮老师书《柔性作业车间调度智能算法及其应用》第16页甘特图clearaxis([0,18,0,3.5]);%x轴y轴的范围set(gca,'xtick',0:2:18);%x轴的增长幅度set(gca,'ytick',0:1:3.5);%y轴的增长幅度xlabel('加工时间','FontName','微软雅黑','Color','b','FontSize',16)ylabel('机
- numpy.ptp()函数
勤奋的大熊猫
Python科学计算基础pythonnumpy
调用方式:numpy.ptp(a,axis=None,out=None,keepdims=)各个参数意义a:输入数组axis:决定沿着哪一个轴寻找峰值位置,默认将数组扁平化以后寻找峰值位置,当然该值也可以为负数,表示从最后一个坐标轴向第一个坐标轴寻找峰值位置有返回值,返回值为一个元组类型的索引数组,即得到非零元素在原数组中的下标out:输出数组,要求它必须具有相同的形状和缓冲区长度,所以一般来说可
- github中多个平台共存
jackyrong
github
在个人电脑上,如何分别链接比如oschina,github等库呢,一般教程之列的,默认
ssh链接一个托管的而已,下面讲解如何放两个文件
1) 设置用户名和邮件地址
$ git config --global user.name "xx"
$ git config --global user.email "
[email protected]"
- ip地址与整数的相互转换(javascript)
alxw4616
JavaScript
//IP转成整型
function ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
n
- 读书笔记-jquey+数据库+css
chengxuyuancsdn
htmljqueryoracle
1、grouping ,group by rollup, GROUP BY GROUPING SETS区别
2、$("#totalTable tbody>tr td:nth-child(" + i + ")").css({"width":tdWidth, "margin":"0px", &q
- javaSE javaEE javaME == API下载
Array_06
java
oracle下载各种API文档:
http://www.oracle.com/technetwork/java/embedded/javame/embed-me/documentation/javame-embedded-apis-2181154.html
JavaSE文档:
http://docs.oracle.com/javase/8/docs/api/
JavaEE文档:
ht
- shiro入门学习
cugfy
javaWeb框架
声明本文只适合初学者,本人也是刚接触而已,经过一段时间的研究小有收获,特来分享下希望和大家互相交流学习。
首先配置我们的web.xml代码如下,固定格式,记死就成
<filter>
<filter-name>shiroFilter</filter-name>
&nbs
- Array添加删除方法
357029540
js
刚才做项目前台删除数组的固定下标值时,删除得不是很完整,所以在网上查了下,发现一个不错的方法,也提供给需要的同学。
//给数组添加删除
Array.prototype.del = function(n){
- navigation bar 更改颜色
张亚雄
IO
今天郁闷了一下午,就因为objective-c默认语言是英文,我写的中文全是一些乱七八糟的样子,到不是乱码,但是,前两个自字是粗体,后两个字正常体,这可郁闷死我了,问了问大牛,人家告诉我说更改一下字体就好啦,比如改成黑体,哇塞,茅塞顿开。
翻书看,发现,书上有介绍怎么更改表格中文字字体的,代码如下
 
- unicode转换成中文
adminjun
unicode编码转换
在Java程序中总会出现\u6b22\u8fce\u63d0\u4ea4\u5fae\u535a\u641c\u7d22\u4f7f\u7528\u53cd\u9988\uff0c\u8bf7\u76f4\u63a5这个的字符,这是unicode编码,使用时有时候不会自动转换成中文就需要自己转换了使用下面的方法转换一下即可。
/**
* unicode 转换成 中文
- 一站式 Java Web 框架 firefly
aijuans
Java Web
Firefly是一个高性能一站式Web框架。 涵盖了web开发的主要技术栈。 包含Template engine、IOC、MVC framework、HTTP Server、Common tools、Log、Json parser等模块。
firefly-2.0_07修复了模版压缩对javascript单行注释的影响,并新增了自定义错误页面功能。
更新日志:
增加自定义系统错误页面功能
- 设计模式——单例模式
ayaoxinchao
设计模式
定义
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
分析
从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。
&nb
- Javascript 多浏览器兼容性问题及解决方案
BigBird2012
JavaScript
不论是网站应用还是学习js,大家很注重ie与firefox等浏览器的兼容性问题,毕竟这两中浏览器是占了绝大多数。
一、document.formName.item(”itemName”) 问题
问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName&quo
- JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
bijian1013
junit4.11单元测试
下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网看了一下,如下发现:
- [Zookeeper学习笔记之二]Zookeeper部署脚本
bit1129
zookeeper
Zookeeper伪分布式安装脚本(此脚本在一台机器上创建Zookeeper三个进程,即创建具有三个节点的Zookeeper集群。这个脚本和zookeeper的tar包放在同一个目录下,脚本中指定的名字是zookeeper的3.4.6版本,需要根据实际情况修改):
#!/bin/bash
#!!!Change the name!!!
#The zookeepe
- 【Spark八十】Spark RDD API二
bit1129
spark
coGroup
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object CoGroupTest_05 {
def main(args: Array[String]) {
v
- Linux中编译apache服务器modules文件夹缺少模块(.so)的问题
ronin47
modules
在modules目录中只有httpd.exp,那些so文件呢?
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,
- Java基础-克隆
BrokenDreams
java基础
Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为
克隆。
Java提供了java.lang.
- 读《研磨设计模式》-代码笔记-适配器模式-Adapter
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 适配器模式解决的主要问题是,现有的方法接口与客户要求的方法接口不一致
* 可以这样想,我们要写这样一个类(Adapter):
* 1.这个类要符合客户的要求 ---> 那显然要
- HDR图像PS教程集锦&心得
cherishLC
PS
HDR是指高动态范围的图像,主要原理为提高图像的局部对比度。
软件有photomatix和nik hdr efex。
一、教程
叶明在知乎上的回答:
http://www.zhihu.com/question/27418267/answer/37317792
大意是修完后直方图最好是等值直方图,方法是HDR软件调一遍,再结合不透明度和蒙版细调。
二、心得
1、去除阴影部分的
- maven-3.3.3 mvn archetype 列表
crabdave
ArcheType
maven-3.3.3 mvn archetype 列表
可以参考最新的:http://repo1.maven.org/maven2/archetype-catalog.xml
[INFO] Scanning for projects...
[INFO]
- linux shell 中文件编码查看及转换方法
daizj
shell中文乱码vim文件编码
一、查看文件编码。
在打开文件的时候输入:set fileencoding
即可显示文件编码格式。
二、文件编码转换
1、在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
&
- MySQL--binlog日志恢复数据
dcj3sjt126com
binlog
恢复数据的重要命令如下 mysql> flush logs; 默认的日志是mysql-bin.000001,现在刷新了重新开启一个就多了一个mysql-bin.000002
- 数据库中数据表数据迁移方法
dcj3sjt126com
sql
刚开始想想好像挺麻烦的,后来找到一种方法了,就SQL中的 INSERT 语句,不过内容是现从另外的表中查出来的,其实就是 MySQL中INSERT INTO SELECT的使用
下面看看如何使用
语法:MySQL中INSERT INTO SELECT的使用
1. 语法介绍
有三张表a、b、c,现在需要从表b
- Java反转字符串
dyy_gusi
java反转字符串
前几天看见一篇文章,说使用Java能用几种方式反转一个字符串。首先要明白什么叫反转字符串,就是将一个字符串到过来啦,比如"倒过来念的是小狗"反转过来就是”狗小是的念来过倒“。接下来就把自己能想到的所有方式记录下来了。
1、第一个念头就是直接使用String类的反转方法,对不起,这样是不行的,因为Stri
- UI设计中我们为什么需要设计动效
gcq511120594
UIlinux
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用
- JBOSS服务部署端口冲突问题
HogwartsRow
java应用服务器jbossserverEJB3
服务端口冲突问题的解决方法,一般修改如下三个文件中的部分端口就可以了。
1、jboss5/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
2、./server/default/deploy/jbossweb.sar/server.xml
3、.
- 第三章 Redis/SSDB+Twemproxy安装与使用
jinnianshilongnian
ssdbreidstwemproxy
目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redis协议,可以支持Redis客户端直接访问;而这些持久化存储大多数使用了如LevelDB、RocksD
- ZooKeeper原理及使用
liyonghui160com
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper
- 程序员解决问题的60个策略
pda158
框架工作单元测试
根本的指导方针
1. 首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。
良好的单元测试
强制数据库约束
使用输入验证框架
避免未实现的“else”条件
在应用到主程序之前知道如何在孤立的情况下使用
日志
2. print 语句。往往额外输出个一两行将有助于隔离问题。
3. 切换至详细的日志记录。详细的日
- Create the Google Play Account
sillycat
Google
Create the Google Play Account
Having a Google account, pay 25$, then you get your google developer account.
References:
http://developer.android.com/distribute/googleplay/start.html
https://p
- JSP三大指令
vikingwei
jsp
JSP三大指令
一个jsp页面中,可以有0~N个指令的定义!
1. page --> 最复杂:<%@page language="java" info="xxx"...%>
* pageEncoding和contentType:
> pageEncoding:它