首页
学习
活动
专区
工具
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.5K30

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

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

21.9K30
  • 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.7K20

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

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

    5.2K10

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

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

    4.4K00

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

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

    3.8K100

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

    同时也可以把两个类别映射到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.9K30

    3.25 PowerBI报告可视化-甘特图:原生,简单好用,几近完美

    它的本质上是一个条形图,横轴表示时间,纵轴表示基于WBS将整体活动分解出来细分活动,条形表示细分活动的时间跨度,这个条形可以用进度条表示实际进展。...甘特图在项目管理等工作中被广泛应用,用来直观地表明整体工作细分后的任务在什么时候开始,什么时候结束,当前的进度和状态,以便于更高效地规划、沟通、跟进项目管理。...它具备以下特点:1 免费;2 支持任务和任务类别,以及自定义排序;3 条形可展示进度;4 支持显示里程碑;5 状态可动态更新;6 通过图例设置条形颜色,区别不同的状态、任务类别或负责人等;7 日期轴单位...缺点:1 不支持显示任务之间的依赖关系;2 日期轴如果用周,显示的是每个周日的日期,不可调;3 休息日除周末外,不可自定义其他假期。...常规:打开或关闭滚动到当前时间;显示或隐藏网格线;休息日:设置休息日的文字和条形颜色,以及每周第一天是周几;图例:设置图例的位置、字号和颜色;里程碑:设置里程碑的颜色和形状。

    9010

    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轴。或者,您可以将第一个到主要组件用作X轴和Y轴。

    4.3K20

    在Python Matplotlib中制作瀑布图

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

    2.7K20

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

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

    18.9K71

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

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

    19620

    52个数据可视化图表鉴赏

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

    5.9K21

    C# WPF中用ChartControl绘制柱形图

    您可以在图表元素树部分中看到并排条形图系列(系列1)。请注意,系列1没有系列点。 Step 2. 将Series 添加到图表中 在本节中,将第二个系列添加到图表中,并用点填充这两个系列。...在“调用”对话框中,单击“区域二维系列类型”。这将使用随机生成的数据将面积系列(系列2)添加到图表中。请注意,参数的轴刻度类型是基于第一个系列的定性数据定义的。...自定义图表 本节介绍如何自定义图表的外观。 #在单独的窗格中显示系列 以下步骤显示如何在单独的窗格中显示每个系列: 展开“窗格”项。单击“其他窗格”项目的“添加”按钮以创建新窗格。...在“图元”树中选择面积系列。在选项选项卡中,找到窗格选项,并在其下拉列表中选择窗格#1项。 添加次轴 按照以下步骤添加和自定义次轴: 展开“轴”项目。单击次Y轴项目的“添加”按钮以添加次Y轴。...在“选项”选项卡中,使用选项的下拉列表将“Y轴”选项设置为次轴Y#1。 在“图元”树中选择次轴Y#1。然后,将轴的对齐选项设置为“近”。 下图显示了结果。

    2.9K10
    领券