@data-ui/histogram

中文文档
0.0.84发布于 2019/11/20MITESM + CJS近 30 天下载 1.7万

反应 + d3 创建直方图库

中文使用文档
文档目录10 节
  1. 示例用途
  2. 构成部分
  3. <Histogram />
  4. <*Series />
  5. <BarSeries />
  6. <DensitySeries />
  7. <XAxis /> 财务报告和审定财务报表 <YAxis />
  8. 工具提示
  9. 主题
  10. 发展

@ data- ui/ 图像

用于创建直方图的 React + d3 库. 垂直或水平,原始数据或被取出的数据,数字或绝对的取出,计数或密度,累计或不累计.

npm install --save @data-ui/histogram

拆解它住在这里 (原始内容存档于2017-10-21). williaster.github.io/data-ui。 。 。 .

示例用途

类似于 @data-ui/xy-chart 软件包,这个 @data-ui/histogram 软件包导出母程序 <Histogram /> 集装箱组件,使其具有特殊性,并在整个儿童中进行协调。 您可以通过可选激活的母容器 <BarSeries /> 和(或) <DensitySeries /> 以及 <XAxis /> 财务报告和审定财务报表 <YAxis />。 。 。 .

import { Histogram, DensitySeries, BarSeries, withParentSize, XAxis, YAxis } from '@data-ui/histogram';

const ResponsiveHistogram = withParentSize(({ parentWidth, parentHeight, ...rest}) => (
  <Histogram
    width={parentWidth}
    height={parentHeight}
    {...rest}
  />
);

const rawData = Array(100).fill().map(Math.random);

...
  render () {
    return (
      <ResponsiveHistogram
        ariaLabel="My histogram of ..."
        orientation="vertical"
        cumulative={false}
        normalized={true}
        binCount={25}
        valueAccessor={datum => datum}
        binType="numeric"
        renderTooltip={({ event, datum, data, color }) => (
          <div>
            <strong style={{ color }}>{datum.bin0} to {datum.bin1}</strong>
            <div><strong>count </strong>{datum.count}</div>
            <div><strong>cumulative </strong>{datum.cumulative}</div>
            <div><strong>density </strong>{datum.density}</div>
          </div>
        )}
      >
        <BarSeries
          animated
          rawData={rawData /* or binnedData={...} */}
        />
        <XAxis />
        <YAxis />
      </ResponsiveHistogram>
    );
  }

与民主 直方图操场。 。 。 .

构成部分

检查故事本中的示例源代码和PropTable标签 (原始内容存档于2017-10-21). williaster.github.io/data-ui。 。 。 .

<Histogram />

名称类型默认说明
线形标签PropTypes.string. is required 互联网档案馆的存檔,存档日期2013-10-02- 说吧无障碍标签
bin Values 选项PropTypes.arrayOf(PropTypes.one OfType ([PropTypes.number,PropTypes.string])). 維基共享資源中相关的原始文献: 通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通通通訊通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通无效Bin 阈值, 超过 binCount
宾肯特PropTypes. 数10个要使用的相近的 bin 数量( 如果数据尚未被选中)
宾盘ProjectTypes.one of(["数字","分类"])数字指定宾箱是绝对还是数字
儿童ProjectTypes.node.is 必需- 说吧儿童系列、轴心或其他
累计数PropTypes.bool (英语)虚假是否显示累积直方图
高度PropTypes.number.is 必需- 说吧可视化高度
水平PropTypes.bool (英语)虚假直方图是垂直方向还是水平方向
限制PropTypes.array (英语)无效边际值被忽略
边距PropTypes.shape ({上:PropTypes. number,右:PropTypes. number,下:PropTypes. number,左:PropTypes. number }){上:32,右:32,下:64,左:64}}图表边距,留下轴和标签!
已正常化PropTypes.bool (英语)虚假值轴是否作为总计的分数正常化
主题PropTypes.object 主题{}图表主题对象,见下文主题.
宽度PropTypes.number.is 必需- 说吧svg 宽度
参数PropTypes.func(单位:千美元)对于原始数据, 如何访问 bin 值

<*Series />

<BarSeries /> 财务报告和审定财务报表 <DensitySeries /> 组件接受 无论是 rawData 或者说 binnnedData。只要每个数据值可以用直方图访问,原始数据可以采用任何格式 valueAccessor 函数。 嵌入式数据应具有以下形状:

export const numericBinnedDatumShape = PropTypes.shape({
  id: PropTypes.string.isRequired,
  bin0: PropTypes.number.isRequired,
  bin1: PropTypes.number.isRequired,
  count: PropTypes.number.isRequired,
});

export const categoricalBinnedDatumShape = PropTypes.shape({
  id: PropTypes.string.isRequired,
  bin: PropTypes.string.isRequired,
  count: PropTypes.number.isRequired,
});

如果两者兼有 rawData 财务报告和审定财务报表 binnnedData 提供, rawData 被忽略.

<BarSeries />

名称类型默认说明
动画PropTypes.bool (英语)真实是否对序列中的数据进行动态更新
原始数据PropTypes.array (英语)[原始数据
宾尼德数据宾尼德数据元件[嵌入数据
填满PropTypes.one of Type ([PropTypes.func, propTypes.string]) (英语)@ data- ui/ semale.color. 默认确定条填充颜色
填充时间PropTypes.one of Type ([PropTypes.func, propTypes.number]) (英语)0.7 (简体中文)条状填充不透明
中风PropTypes.one of Type ([PropTypes.func, propTypes.string]) (英语)白话确定条中风颜色
中风PropTypes.one of Type ([PropTypes.func, propTypes.number]) (英语)1个确定条大纲的宽度
点击PropTypes.func- 说吧在栏上点击,签名为: ({ event, data, datum, color, index })

<DensitySeries />

对于 原始数据 这是 数字,则 <DensitySeries /> 绘制概率密度函数的估计数,即内核密度估计数。 如果将预先汇总和/或绝对数据传递给系列,则它会根据数据计数绘制一个数值的区域图.

名称类型默认说明
动画PropTypes.bool (英语)真实是否对序列中的数据进行动态更新
原始数据PropTypes.array (英语)[原始数据
宾尼德数据宾尼德数据元件[嵌入数据
填满PropTypes.one of Type ([PropTypes.func, propTypes.string]) (英语)@ data- ui/ semale.color. 默认确定条填充颜色
内核ProjectTypes.one of (['goussian','parabolic']) (英语)"高卢人"内核函数类型,抛物线=epanechnikov内核
显示区域PropTypes.bool (英语)真实是否显示密度区域填充
显示行PropTypes.bool (英语)真实是否显示密度行路径
平滑PropTypes. 数1个抛物管/ epanechinikov 内核函数的平滑常数
填充时间PropTypes.one of Type ([PropTypes.func, propTypes.number]) (英语)0.7 (简体中文)显示的区域填充不透明
中风PropTypes.one of Type ([PropTypes.func, propTypes.string]) (英语)白话显示时确定行色
中风PropTypes.one of Type ([PropTypes.func, propTypes.number]) (英语)2个显示行路径的宽度
中风 DasharrayPropTypes.one of Type ([PropTypes.func, propTypes.string]) (英语)''显示时确定线条的虚线图案
中风线盖PropTypes.one of (['but','square','round','in herit']) (中文(简体) )"圆"线条路径中键的样式
使用全比例PropTypes.bool (英语)虚假如果选中的话, 密度图将缩放以填充整个图的 y 范围 。 如果错误, 最大值会缩放到序列的倒数

<XAxis /> 财务报告和审定财务报表 <YAxis />

名称类型默认说明
轴样式轴式形状{}轴和轴标签样式的配置对象,见下文主题
标签PropTypes.one of Type ([PropTypes.string,PropTypes.element]) (英语)< text {. axisStyles. label[指向]}/ >轴标签的字符串或组件
数字PropTypes. 数无效勾选的大致数量
方向XAxis projectTypes.oneOf (['bottom','top']) 或 YAxis projectTypes.oneOf (['左','右'])下, 左边轴方向
计时器勾结样式形状{}用于样式勾选和勾选标签的配置对象,见下文主题
勾选标签组件PropTypes.elements (英语)< text {. tickStyles. label[指向]}/ >用于勾选标签的组件
勾选表PropTypes.func无效(tick, tickIndex) QQ 格式化的勾选
勾选值PropTypes.arrayOf(PropTypes.one OfType ([PropTypes.number,PropTypes.string])). 維基共享資源中相关的原始文献: 通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通訊通通通訊通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通通无效自定义勾选值

工具提示

直方图支持工具提示 BarSeries编辑 简单 将工具提示从框中取出的方式是: renderTooltip 函数改为 <Histogram /> 如以上例子所示。 此函数以形状为对象 { event, datum, data, color } 如上所示,作为输入并应当返回工具提示(而不是工具提示容器!)的内部内容. datum 对应 已弹入 数据点,请参见以上指定形状,这些形状取决于您的本位是绝对的还是数字的. color 代表条形填充。 如果此函数返回 a falsy 值,将不提供工具提示.

盖子下面,这个包住 <Histogram /> 导出部件 <WithTooltip /> HOC,它包起来 svg 在一个 <div /> ,并处理 HTML 工具提示的定位和渲染,其内容由返回 renderTooltip()。该工具提示意识到其容器的界限,应当“明智”定位.

如果你想在工具提示的渲染上更自定义,你可以做以下任一工作:

  1. 滚动自己的工具提示定位逻辑并传递 onMouseMove 财务报告和审定财务报表 onMouseLeave 函数到 Histogram。这些职能移交给 <BarSeries /> 儿童,以签名方式召唤 onMouseMove({ data, datum, event, color }) 财务报告和审定财务报表 onMouseLeave() 在适当的触发.

  2. 环绕 <Histogram /> 内 <WithTooltip /> 接受额外定制的道具:

名称类型默认说明
儿童PropTypes.func 或 propTypes.object- 说吧使用 MouseMove 、 MouseLeave 和工具tipData 道具/ 键的子函数(调用) 或元素( 克隆)
类NamePropTypes.string (英语)- 说吧要添加的类名 <div> 容器包装器
渲染工具提示PropTypes.func.is 必需- 说吧显示 目录 工具提示,签名 ({ event, data, datum, color, index }) => node如果该函数返回 a falsy 值,将不提供工具提示.
样式PropTypes.object 主题{}要添加的样式 <div> 容器包装器
工具提示组件PropTypes.func 或 propTypes.object@vx是因为 TooltipWithBounds用作工具提示容器组件的组件(而非实例)。 它通过 top 财务报告和审定财务报表 left 定位数字
工具提示PropTypes.object 主题- 说吧传递给 TooltipComponent
工具提示超时PropTypes. 数200个调用时工具提示隐藏的超时 onMouseLeave

主题

具有以下形状的主题对象可以传递到 <Histogram /> 用于样式图、轴和系列。 或者,按键(例如 xAxisStyles)可以直接传递到轴元件上.

见 @data-ui/theme 举个例子.

export const themeShape = PropTypes.shape({
  gridStyles: PropTypes.shape({
    stroke: PropTypes.string,
    strokeWidth: PropTypes.number,
  }),
  xAxisStyles: PropTypes.shape({
    stroke: PropTypes.string,
    strokeWidth: PropTypes.number,
    label: PropTypes.shape({
      bottom: PropTypes.object,
      top: PropTypes.object,
    }),
  }),
  yAxisStyles: PropTypes.shape({
    stroke: PropTypes.string,
    strokeWidth: PropTypes.number,
    label: PropTypes.shape({
      left: PropTypes.object,
      right: PropTypes.object,
    }),
  })
  xTickStyles: PropTypes.shape({
    stroke: PropTypes.string,
    tickLength: PropTypes.number,
    label: PropTypes.shape({
      bottom: PropTypes.object,
      top: PropTypes.object,
    }),
  }),
  yTickStyles: PropTypes.shape({
    stroke: PropTypes.string,
    tickLength: PropTypes.number,
    label: PropTypes.shape({
      left: PropTypes.object,
      right: PropTypes.object,
    }),
  }),
});

发展

npm install
yarn run dev # or 'build'

版本与发布记录

@data-ui/histogram 共发布 40 个版本,首次发布于 2017/08/04;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.84latest2019/11/206 年前
0.0.832019/11/206 年前
0.0.822019/11/057 年前
0.0.812019/09/247 年前
0.0.802019/07/257 年前
0.0.792019/06/157 年前

关于 @data-ui/histogram 的常见问题

@data-ui/histogram 是什么?

反应 + d3 创建直方图库

如何安装 @data-ui/histogram?

在项目目录运行 npm install @data-ui/histogram,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^15.0.0-0 || ^16.0.0-0)、react-dom(^15.0.0-0 || ^16.0.0-0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@data-ui/histogram 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/data-ui__histogram 是否存在。

@data-ui/histogram 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@data-ui/histogram 可以商用吗?

@data-ui/histogram 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@data-ui/histogram 的下载量有多少?

根据 npm 官方下载统计,@data-ui/histogram 在 2026/10/12 – 2026/11/10 这 30 天内被下载 17,164 次,日均约 572 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@data-ui/histogram 还在维护吗?

最新版本 0.0.84 发布于 2019/11/20(6 年前);至今共发布 40 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/08/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。