首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

recharts在MultiBarChart中沿Y轴的每个条形上添加关闭按钮,以便关闭条形

recharts是一个基于React和D3的图表库,用于在Web应用程序中创建交互式和可定制的图表。MultiBarChart是recharts库中的一个组件,用于显示多个条形图。

要在MultiBarChart的每个条形上添加关闭按钮,以便关闭条形,可以通过以下步骤实现:

  1. 首先,需要在MultiBarChart组件中的每个条形上添加一个关闭按钮的元素。可以使用React的JSX语法在每个条形的渲染函数中添加一个按钮元素。
  2. 在点击关闭按钮时,需要触发一个事件来关闭相应的条形。可以使用React的事件处理函数来实现这一功能。在点击关闭按钮时,可以通过修改组件的状态来控制条形的显示与隐藏。
  3. 为了实现关闭按钮的功能,可以在组件的状态中添加一个属性来表示每个条形的显示状态。可以使用一个数组来保存每个条形的显示状态,数组的每个元素对应一个条形的显示状态。
  4. 当点击关闭按钮时,可以通过修改相应条形的显示状态来实现关闭功能。可以使用React的setState函数来更新组件的状态。

以下是一个示例代码,演示如何在recharts的MultiBarChart中添加关闭按钮:

代码语言:txt
复制
import React, { useState } from 'react';
import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts';

const data = [
  { name: 'A', value: 10 },
  { name: 'B', value: 20 },
  { name: 'C', value: 30 },
];

const CustomBar = ({ x, y, width, height, fill, onClick }) => {
  return (
    <g>
      <rect x={x} y={y} width={width} height={height} fill={fill} />
      <text x={x + width / 2} y={y + height / 2} fill="#fff" textAnchor="middle" dominantBaseline="middle">
        {`${height}`}
      </text>
      <circle cx={x + width - 10} cy={y + 10} r={8} fill="#f00" onClick={onClick} />
    </g>
  );
};

const MultiBarChart = () => {
  const [barStatus, setBarStatus] = useState(Array(data.length).fill(true));

  const handleBarClick = (index) => {
    const newBarStatus = [...barStatus];
    newBarStatus[index] = !newBarStatus[index];
    setBarStatus(newBarStatus);
  };

  return (
    <BarChart width={500} height={300} data={data}>
      <CartesianGrid strokeDasharray="3 3" />
      <XAxis dataKey="name" />
      <YAxis />
      <Tooltip />
      <Legend />
      <Bar dataKey="value" fill="#8884d8" shape={<CustomBar onClick={(e) => handleBarClick(e.index)} />} hide={barStatus} />
    </BarChart>
  );
};

export default MultiBarChart;

在上述代码中,我们定义了一个名为CustomBar的自定义组件,用于渲染每个条形。在CustomBar组件中,我们添加了一个圆形按钮,并为其绑定了点击事件onClick

MultiBarChart组件中,我们使用useState钩子来定义了一个名为barStatus的状态,用于保存每个条形的显示状态。在handleBarClick函数中,我们通过修改barStatus状态来实现点击关闭按钮时的显示与隐藏。

最后,在Bar组件中,我们使用hide属性来根据barStatus状态来控制条形的显示与隐藏。

这样,就实现了在recharts的MultiBarChart中沿Y轴的每个条形上添加关闭按钮,并且可以通过点击按钮来关闭相应的条形。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1.基础知识(3) --Matlab绘制特殊图形

x = linspace(-10,10,200); y = cos(x); plot(x,y) 更改沿 x y 刻度值位置。将这些位置指定为一个由递增值组成向量。这些值无需等距。...此外,还要更改沿 x 每个刻度值关联标签。并用一个字符向量元胞数组来指定刻度标签。要在标签包含特殊字符或希腊字母,可使用 TeX 标记,例如用 \pi 表示 π 符号。...1.3、更改刻度标签格式 创建针状图并将沿 y 刻度标签值显示为美元值。...例如,使用 '%.1f' x 刻度标签显示一个十进制值。使用 '\xA3%.2f' 将 y 刻度标签显示为英镑。选项 \xA3 表示英镑符号 Unicode 字符。...使用 magic 函数得到数据三维条形图。在数组 b 返回用于创建条形曲面对象。向图形添加颜色栏。

3.4K30

使用JavaScript和D3.js实现数据可视化

使矩形反映数据 目前,我们阵列所有矩形沿X具有相同位置,并且不代表高度方面的数据。要修改矩形位置和大小,我们需要为我们一些属性引入函数。添加函数将使值成为动态而非手动。...让我们为它迭代每个索引添加间距,以便每个矩形间隔开。为此,我们可以将索引乘以i一定数量像素。我们现在将使用60,但您可以决定哪种间距适合您。...,"50"); 如果我们此时刷新浏览器,我们会看到如下所示内容: 现在我们有沿X间隔开矩形,代表我们阵列每个项目。...此外,我们可以通过鼠标悬停时添加条形颜色样式来为我们图表添加一些交互性: .bar:hover { fill: red } 现在,当我们将鼠标悬停在其中一个矩形时,该特定矩形将变为红色: 或者..., function(d, i) {return 390 - (d * 10)}); 或者,您可以通过根据Y修改它们位置,使数字浮动矩形

21.8K30
  • SVG 菜鸟 Recharts 自定义图表实战

    开始一波网上冲浪,找到了 MDN  SVG 教程[4],过了一遍,有了个基础印象。引导线实现用了  元素。...简单梳理一下文档涉及基本命令和接受参数: M x y 画笔移动到 (x, y),作为起点 L x y 画一条直线到 (x, y) H x 水平划线到横坐标 x V y   水平划线到纵坐标 y... 时 props 各个属性图形含义,这里用到有: const {  cx, cy, innerRadius, outerRadius, startAngle, endAngle, midAngle...最终饼图效果。 3. 条形实现 条形图 如图,这里我们需要做这样一个条形图,涉及到元素有两块,X、一系列柱子,各一个 React 组件。...看左下角= = 我们想实现一个圆角矩形,但 (x, y) 实际是位于半圆左边空白部分左上角。当这个点太接近坐标,加上圆角半径以后,圆角起点纵坐标便超出范围,导致了这种诡异情况。

    1.6K20

    Excel实例:Excel图表可视化:条形图、折线图、散点图和步骤图

    图1 – Excel条形图 最终图表如图1所示,尽管最初该图表不包含图表标题或标题。...为了使结果显示图1,我们还需要通过图表单击鼠标左键并将其拖动到所需位置来工作表中移动图表。然后,我们可以通过单击图表一个角并拖动角以更改尺寸来调整图表大小,使其变小(或变大)。...提示我们输入标签数据范围,然后输入A4:A13(或仅在工作表突出显示此范围),然后按 OK(确定) 按钮。接下来,我们 图3所示对话框按 OK按钮以接受更改。...示例3:创建图5范围A3:C9所示(x,y)对散点图。此处,这些对代表 以百万美元为单位每个收入(y值)和运营成本(x值)。零售业务六个部门。...图5 –散点图 如果要添加标签,请使用适当区域名称图表每个单击图表。这将弹出图5图表右上方所示三个图标。单击 + 图标,然后单击Data Labels 图表元素选项右侧 。

    5.1K10

    Excel实例:Excel图表可视化:条形图、折线图、散点图和步骤图

    最后,通过选择“ 布局”> “垂直标题可以添加水平标题。  标签|标题>主垂直标题>旋转标题。...为了使结果显示图1,我们还需要通过图表单击鼠标左键并将其拖动到所需位置来工作表中移动图表。然后,我们可以通过单击图表一个角并拖动角以更改尺寸来调整图表大小,使其变小(或变大)。...提示我们输入标签数据范围,然后输入A4:A13(或仅在工作表突出显示此范围),然后按  OK(确定) 按钮。接下来,我们 图3所示对话框按  OK按钮以接受更改。...示例3:创建图5范围A3:C9所示(x,y)对散点图。此处,这些对代表 以百万美元为单位每个收入(y值)和运营成本(x值)。零售业务六个部门。...图5 –散点图 如果要添加标签,请使用适当区域名称图表每个单击图表。这将弹出图5图表右上方所示三个图标。单击  +  图标,然后单击Data Labels  图表元素选项右侧  。

    4.2K00

    数据挖掘知识脉络与资源整理(九)–柱形图

    柱形图 简介 英文:histogram或者column diagram 排列工作表列或行数据可以绘制到柱形图中。柱形图中,通常沿水平组织类别,而沿垂直组织数值。...当有三个或更多数据系列并且希望强调所占总数值大小时,尤其是总数值对每个类别都相同时,您可以使用百分比堆积柱形图。...三维柱形图 三维柱形图使用可修改三个(水平、垂直和深度),可对沿水平和深度分布数据点(数据点:图表绘制单个值,这些值由条形、柱形、折线、饼图或圆环图扇面、圆点和其他被称为数据标记图形表示...(x = Time, y = demand)) + geom_bar(stat = "identity") 看看有什么区别,第二个图形,数据time没有6这个值,但是图形X还是画出来了,这就是对于分类变量和连续变量不同...我们日常生活,红色一般象征正,暖色调嘛,蓝色一般表示负,冷色调呀,有没有?你家电线红色是不是火线,红色是不是正极,虽然上图没有错,但是我们想换一下,正为红色,负为蓝色咋办?

    3.7K100

    《数据可视化基础》第四章:可视化图形推荐

    同时也可以把两个类别映射到X和Y,这样就得到了热图来进行展示了。 ? 另外,对于多组别的数目的展示的话,如果是想要展示不同交集之间数目可以使用venn图和upset图。 ?...另外,堆叠条形图基本使用所有情况,如果是比例沿连续性变量进行变化时候,使用堆叠密度图是可以。 ?...对于成对数据,沿x和y变量以相同单位测量,通常添加一条表示x = y线通常会有所帮助。 ? 对于大量点,常规散点图可能会由于点过多,就容易看不清趋势。...5 地理空间数据 显示地理空间数据主要模式是地图。地图可以获取地球坐标并将其投影到平坦表面上,这样地球形状和距离就可以用2D表示形状和距离来近似表示。...某些情况下,根据其他一些数量(例如人口数量)使不同区域变形或将每个区域简化为正方形可能会有所帮助。这种可视化称为制图(cartograms)。 ?

    2.4K30

    娱乐圈排行榜动态条形图绘制

    我是爬虫爬下来数据,如果不想爬虫可直接到公众号回复"娱乐圈排行榜条形图",即可获取数据。...; plt.barh: 绘制横向条形图; plt.xlim: 设置x范围; plt.annotate:添加图形右下角截止统计日期,其中str是添加文字内容,xy是箭头位置,xytext是文字位置...,bbox是添加边框; for x, y:添加人名; 得到结果: ?...注:该代码只是绘制单个条形图代码基础,用循环把所有图每隔一个很短时间展示出来,给人一种动图效果。 本文是本人使用matplotlib库进行绘图得到结果,如有问题请指正。...若想获取文中所有可直接执行代码和数据,可在公众号回复"娱乐圈排行榜条形图",即可免费获取。如对代码有疑问,可以到公众号私信我。

    1.1K30

    JavaScript图表数据可视化:比较D3和Kendo UI

    D3和Kendo UI只是web应用程序创建图表两种方式,选项范围从简单地屏幕绘制图形到使用复杂图表组件。D3和Kendo UI都很受欢迎,两者都能完成工作。...我想要实现图表(Excel绘制,以保持中立)是: ? 此外,为了展示如何做一些基本动画,我们还添加了一些工具提示,以便在鼠标滑过其中一个栏时,可以看到该栏显示值。...X是根据数据集中数量进行缩放。在下一节,我们将在显示区域略微移动图表。 现在我们开始讲D3部分内容。在这里,我们告诉D3我们将使用哪些数据,并指定图表每个条形基本元素。...下一个步骤 让我们更进一步,首先,关闭那些网格线,使我们两个图表匹配。通过向kendoChart添加两个部分,Kendo UI代码很容易做到这一点。...我们不需要告诉Kendo UI添加Y,它是自动完成。同样,Kendo UI做它认为我们需要在图表,D3只做我们告诉它。在这个过程,我们两个图表都加一个X

    11.8K30

    50 个数据可视化图表

    边缘直方图(Marginal Histogram) 边缘直方图具有沿 X 和 Y 变量直方图。这用于可视化 X 和 Y 之间关系以及单独 X 和 Y 单变量分布。...有序条形图(Ordered Bar Chart) 有序条形图有效地传达了项目的排名顺序。但是,图表上方添加度量标准值,用户可以从图表本身获取精确信息。 16....使用辅助 Y 来绘制不同范围图形(Plotting with different scales using secondary Y axis) 如果要显示同一时间点测量两个不同数量两个时间序列,...则可以右侧辅助 Y 再绘制第二个系列。...此图使用“谋杀”和“攻击”列作为 X 和 Y 。或者,您可以将第一个到主要组件用作 X Y 。 49.

    4K20

    总结了50个最有价值数据可视化图表

    边缘直方图(Marginal Histogram) 边缘直方图具有沿 X 和 Y 变量直方图。这用于可视化 X 和 Y 之间关系以及单独 X 和 Y 单变量分布。...有序条形图(Ordered Bar Chart) 有序条形图有效地传达了项目的排名顺序。但是,图表上方添加度量标准值,用户可以从图表本身获取精确信息。 16....使用辅助 Y 来绘制不同范围图形(Plotting with different scales using secondary Y axis) 如果要显示同一时间点测量两个不同数量两个时间序列,...则可以右侧辅助 Y 再绘制第二个系列。...此图使用“谋杀”和“攻击”列作为 X 和 Y 。或者,您可以将第一个到主要组件用作 X Y 。 49.

    3.3K10

    50个最有价值数据可视化图表(推荐收藏)

    边缘直方图(Marginal Histogram) 边缘直方图具有沿 X 和 Y 变量直方图。这用于可视化 X 和 Y 之间关系以及单独 X 和 Y 单变量分布。...有序条形图(Ordered Bar Chart) 有序条形图有效地传达了项目的排名顺序。但是,图表上方添加度量标准值,用户可以从图表本身获取精确信息。 ? 16....使用辅助 Y 来绘制不同范围图形(Plotting with different scales using secondary Y axis) 如果要显示同一时间点测量两个不同数量两个时间序列,...则可以右侧辅助 Y 再绘制第二个系列。...此图使用“谋杀”和“攻击”列作为 X 和 Y 。或者,您可以将第一个到主要组件用作 X Y 。 ? 49.

    4.6K20

    50种常见Matplotlib科研论文绘图合集!赶紧收藏~~

    6、边缘直方图 (Marginal Histogram) 边缘直方图具有沿 X 和 Y 变量直方图。这用于可视化 X 和 Y 之间关系以及单独 X 和 Y 单变量分布。...03 排序 (Ranking) 15、有序条形图 (Ordered Bar Chart) 有序条形图有效地传达了项目的排名顺序。但是,图表上方添加度量标准值,用户可以从图表本身获取精确信息。...17、包点图 (Dot Plot) 包点图表传达了项目的排名顺序,并且由于它沿水平对齐,因此您可以更容易地看到点彼此之间距离。...,则可以右侧辅助Y再绘制第二个系列。...此图使用“谋杀”和“攻击”列作为X和Y。或者,您可以将第一个到主要组件用作XY

    4.1K20

    Python Matplotlib制作瀑布图

    然而,可以使用一点小小技巧Python自定义自己瀑布图。 1.创建标准条形图。...这两个新列tot和tot1为我们提供了每个瀑布条起点和终点。例如,第2行Expenses(费用),起点是110,终点是90。...数据num列随时可用,让我们创建一个新color列来存储每个类别的适当颜色。...图4 瀑布图显示了每个类别对总数贡献,因此可在每个条形中间添加标签信息。也可以添加“连接符”,将上一个条形起点和终点连接到下一个条形。...下面将完整瀑布图代码转换为一个方便Python函数,以便以后可以重用它。该函数接受三个参数:包含数据数据框架、要放置为x数据列名称以及要用作y数据列名称。

    2.6K20

    独家 | 手把手教数据可视化工具Tableau

    这些字段都是连续,因此 Tableau 将沿视图底部和左侧显示(而不是列或行标题)。...该度量将聚合为一个总和并将创建一个,列标题将移到视图底部。 由于您添加了日期维度,因此 Tableau 会使用“线”作为标记类型。 STEP 4: “标记”卡,从视图下拉列表中选择“条形”。...视图会更改为条形图。 标记(本例为条)是垂直,因为是垂直每个标记长度表示那一年销售总额。您在此处看到数字可能与实际数字不匹配 — 示例数据会随时发生变化。...此视图使您能深入了解您数据,例如西部装运模式四年期间内发生了怎样变化。 额外步骤:为堆叠条添加合计 将合计添加到图表条形顶部操作,有时就像通过工具栏单击“显示标记标签”图标一样简单。...但是,当按颜色或大小分解条形时,则将标记每个单独条形段而不是标记条形合计。只需几步,您就可以向每个条形顶部添加合计标签,即使这些条形像您刚刚创建视图中一样已经细分。

    18.8K71

    52个数据可视化图表鉴赏

    这时候需要站在前人肩膀,即使他轮子不是最圆,在此基础修改即可,不必完全通晓造轮子全部过程。 三、在做数据可视化这一年多,我觉得很多现实业务场景其实也是造轮子。...4.条形条形图是一种用矩形表示分组数据图表,矩形条长度与其表示值成比例。可以垂直或水平绘制条形图。垂直条形图有时也称为折线图。图表一个显示要比较特定类别,另一个表示离散值。...它们提供了一种可视化价值序列简单方法,您希望看到随时间变化趋势或预测未来价值时非常有用。 29.棒棒糖图 棒棒糖图是折线图和点图组合,允许您在图表添加更详细信息。...42.分段条形图 当两个或多个数据集并排绘制并分组同一类别下时,可以使用如图条形这种变化。与条形图一样,每个条形长度用于显示类别之间离散数值比较。...例如,如果我们要显示一年数据,我们可以图表每个月指定一种颜色。 48.流图 这种类型可视化是堆叠面积图一种变体,它不是针对固定绘制值,而是围绕变化中心基线移动值。

    5.8K21

    怎么样选择我们要使用图表类型?

    标签:Excel图表技巧 Excel,有差不多80种图表类型,到底该使用哪种图表类型呢?本文介绍几个示例。 对于具有相等点时间序列,可以使用柱形或折线。通常,人们都是期望时间从左向右移动。...图1 为了比较名称较长产品销售额,条形图为沿左侧长文本标签留出了足够空间。但不要使用饼图进行项目比较,饼图只能用来显示几个项目加起来是如何达到100%。...Excel提供了一些其他未涵盖图表类型。 如果拥有公司和竞争对手调查数据,可以一张雷达图上绘制这两个结果。如下图2所示,显示了每个问题相对排名。...图2 气泡图就像散点图,但点大小传达呈现了第三位数据。例如,可以将x里程、y车龄和汽车价格作为泡沫大小进行比较,如下图3所示。...此外,如果需要跟踪销售渠道,基本可以使用条形图,但是条形是居中。然而,Office 365包括了漏斗图,更方便,如下图5所示。

    17920

    14个最好 JavaScript 数据可视化库

    饼图,地理图,折线图, 条形图? 有些库只支持少数几种类型。首先要知道自己到底需要哪些。 数据集有多大? 基于 SVG 库通常更适合中小型数据集,因为每个元素都是唯一节点并存在于 DOM 树。...当你项目中有一个奇怪图表,一个需要漂亮界面基本功能,有所有的花里胡哨(工具提示、图例、X/Y 等)东西,或当应用需要标准化、响应和详细图表,特别是需要有多种类型时。...Recharts 为 React 专用。 Recharts 使用 D3 作为引擎,并导出了声明性组件。它非常轻巧,可以通过渲染 SVG 元素来创建漂亮交互式图表。它易于使用而且文档完整。...Victory 基础方面做得很好 —— 例如坐标定制、标签、为单个图表传递不同数据集都非常简单,并且对样式和行为进行调整时非常简单直观。它真的很好用,能让你用最少代码创建漂亮图表。...较大数据集性能可能会受到影响,因此请确保它确实适合你项目。

    5.9K30
    领券