【问题标题】:Optimizing the size of pie chart in Highcharts优化 Highcharts 中饼图的大小
【发布时间】:2021-01-19 07:50:52
【问题描述】:

我正在尝试创建一个大小为 320 x 320 像素的饼图,如下所示:

当一个饼被选中时,它应该像这样展开:

我目前所能达到的效果如下图所示,这显然与设计的精神相去甚远。我不确定要拉什么杠杆以尽可能接近要求。请查看我的 CodeSandbox here。

高级要求是:

  • 图表大小:320 x 320 像素
  • 甜甜圈直径:152px
  • 字体系列:Overpass
  • 字体大小:
    • 一般:12 像素
    • 标题:16px
    • 总数:32px

我的一些问题:

  1. 如何减小“刻度”的大小以避免类别标签上的省略号。或者有没有办法包装类别标签以避免省略号?
  2. 如何将数据值添加到每个支出类别?
  3. 如何在中间加上总值?
  4. 如何控制每个元素的字体大小?
  5. 选中后如何做馅饼?
  6. 如何抑制悬停时的动画?

到目前为止,我的实现是here。

更新

经过进一步研究并结合@Sebastian Wędzel 建议的更改,我已经能够将实施提升到以下水平:

【问题讨论】:

  • 谢谢,@roa。参考文档后,我能够弄清楚如何使馅饼的大小更大。但是我无法弄清楚其余的答案。这些文档很大,我仍然在思考它们。我已经更新了我的问题列表以及 CodeSandbox。任何进一步的帮助将不胜感激。

标签: highcharts


【解决方案1】:

我看到您已经找到了大部分问题的答案。以下是我对未回答问题的建议:

  • 图表大小:320 x 320 px - 您可以定义chart.width 和chart.height

API:https://api.highcharts.com/highcharts/chart.width

  • 中间怎么加总值?

您可以使用 SVGRenderer 工具将其呈现为自定义文本。

演示:https://jsfiddle.net/BlackLabel/xbhas3g6/

API:https://api.highcharts.com/class-reference/Highcharts.SVGRenderer#text

  • 选中后如何做馅饼?

在这里您可能需要将您的系列类型更改为variablepie - 演示:https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/variable-radius-pie 并在点击事件上实现point.update 以增加选定的 Z 点值。

API:https://api.highcharts.com/highcharts/series.variablepie.point.events.click

API:https://api.highcharts.com/class-reference/Highcharts.Point#update

【讨论】:

  • 感谢您的帮助,@Sebastian。是的,我能够通过深入研究文档来回答几个问题。给你几个问题:1)使用chart.width和chart.height与我的方法相比有优势吗,即将包含的div设置为那个大小,然后设置containerProps={{ style: { width: '100%', height: '100%' } }}? 2)为了在选择时增加馅饼,我目前只设置了allowPointSelect。这种行为不是按设计的,我会看看设计师是否同意。否则我会采纳你的建议。
  • 我根据你的例子在中间实现了总值。将您的示例转换为基于 React 的代码(使用 useRef 和 useEffect)有点棘手,但我最终让它工作了。我看到的唯一问题是总值稍微偏左一点。有什么我错过的吗?
  • 事实上,我现在也可以在您的示例中重现这一点。您可以将数字从 88 更改为 100,或者将标签更改为更短的名称,例如“$”,您会看到错位。
  • @Naresh 抱歉回复晚了! 1) 使用chart.width/height 没有什么特别的优势。默认情况下,它将根据您的容器 div 计算,更多:api.highcharts.com/highcharts/chart.height 2) 如果要将此标签居中,您可以进行与字幕相同的翻译:jsfiddle.net/BlackLabel/bsf0orde
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-24
相关资源
最近更新 更多