- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当点击内部 donut 时,我试图将内部和其他 donut 滑出。在下面的链接中,只切掉了内部 donut 。
http://jsfiddle.net/bvL0r6tq/
我试图通过点选择选择外部切片,但它们没有一起移出。外部的在它们之间传播。
任何人都可以让我知道当点击内部 donut 时如何将内部和外部 donut 切掉而不在他们之间传播外部 donut 。
var colors = Highcharts.getOptions().colors,
categories = ['MSIE', 'Firefox', 'Chrome', 'Safari', 'Opera'],
data = [{
y: 56.33,
color: colors[0],
drilldown: {
name: 'MSIE versions',
categories: ['MSIE 6.0', 'MSIE 7.0', 'MSIE 8.0', 'MSIE 9.0', 'MSIE 10.0', 'MSIE 11.0'],
data: [1.06, 0.5, 17.2, 8.11, 5.33, 24.13],
color: colors[0]
}
}, {
y: 10.38,
color: colors[1],
drilldown: {
name: 'Firefox versions',
categories: ['Firefox v31', 'Firefox v32', 'Firefox v33', 'Firefox v35', 'Firefox v36', 'Firefox v37', 'Firefox v38'],
data: [0.33, 0.15, 0.22, 1.27, 2.76, 2.32, 2.31, 1.02],
color: colors[1]
}
}, {
y: 24.03,
color: colors[2],
drilldown: {
name: 'Chrome versions',
categories: ['Chrome v30.0', 'Chrome v31.0', 'Chrome v32.0', 'Chrome v33.0', 'Chrome v34.0',
'Chrome v35.0', 'Chrome v36.0', 'Chrome v37.0', 'Chrome v38.0', 'Chrome v39.0', 'Chrome v40.0', 'Chrome v41.0', 'Chrome v42.0', 'Chrome v43.0'
],
data: [0.14, 1.24, 0.55, 0.19, 0.14, 0.85, 2.53, 0.38, 0.6, 2.96, 5, 4.32, 3.68, 1.45],
color: colors[2]
}
}, {
y: 4.77,
color: colors[3],
drilldown: {
name: 'Safari versions',
categories: ['Safari v5.0', 'Safari v5.1', 'Safari v6.1', 'Safari v6.2', 'Safari v7.0', 'Safari v7.1', 'Safari v8.0'],
data: [0.3, 0.42, 0.29, 0.17, 0.26, 0.77, 2.56],
color: colors[3]
}
}, {
y: 0.91,
color: colors[4],
drilldown: {
name: 'Opera versions',
categories: ['Opera v12.x', 'Opera v27', 'Opera v28', 'Opera v29'],
data: [0.34, 0.17, 0.24, 0.16],
color: colors[4]
}
}, {
y: 0.2,
color: colors[5],
drilldown: {
name: 'Proprietary or Undetectable',
categories: [],
data: [],
color: colors[5]
}
}],
browserData = [],
versionsData = [],
i,
j,
dataLen = data.length,
drillDataLen,
brightness;
// Build the data arrays
for (i = 0; i < dataLen; i += 1) {
// add browser data
browserData.push({
sliced: categories[i] == 'MSIE' ? true : false,
name: categories[i],
y: data[i].y,
color: data[i].color
});
// add version data
drillDataLen = data[i].drilldown.data.length;
for (j = 0; j < drillDataLen; j += 1) {
brightness = 0.2 - (j / drillDataLen) / 5;
versionsData.push({
name: data[i].drilldown.categories[j],
y: data[i].drilldown.data[j],
color: Highcharts.Color(data[i].color).brighten(brightness).get()
});
}
}
// Create the chart
Highcharts.chart('container', {
chart: {
type: 'pie'
},
title: {
text: 'Browser market share, January, 2015 to May, 2015'
},
subtitle: {
text: 'Source: <a href="http://netmarketshare.com/">netmarketshare.com</a>'
},
yAxis: {
title: {
text: 'Total percent market share'
}
},
plotOptions: {
pie: {
shadow: false,
center: ['50%', '50%'],
slicedOffset: 20
}
},
tooltip: {
valueSuffix: '%'
},
series: [{
name: 'Browsers',
data: browserData,
size: '0%',
dataLabels: {
formatter: function () {
return this.y > 5 ? this.point.name : null;
},
color: '#ffffff',
distance: -30
}
}, {
name: 'Versions',
data: versionsData,
size: '80%',
innerSize: '60%',
dataLabels: {
formatter: function () {
// display only if larger than 1
return this.y > 1 ? '<b>' + this.point.name + ':</b> ' + this.y + '%' : null;
}
}
}]
});
最佳答案
切片属性的当前实现是不可能的。但是,您可以通过一些努力来实现该功能。您需要移动具有相同浏览器的切片,因为它们将是一个点。
将您的数据拆分为内部系列和外部系列——每种浏览器类型一个外部系列。外部系列应该有不可见的点,因此您只能看到部分饼图。
series: [{
name: 'Browsers',
keys: ['y'],
data: [40, 30, 30],
size: '80%',
innerSize: 0,
slicedOffset: 20,
colorByPoint: true
}, {
data: [20, 20, {
y: 60,
visible: false
}]
}, {
color: colors[1],
data: [{
y: 40,
visible: false
}, 10, 10, 10, {
y: 30,
visible: false
}]
}, {
color: colors[2],
data: [{
y: 70,
visible: false
}, 5, 5, 5, 15]
}]
const translateSeries = function(series, center, translation) {
const cx = center[0],
cy = center[1];
series.update({
center: [cx + translation.translateX, cy + translation.translateY]
});
};
const translate = function(e) {
const innerSeries = this.chart.series[0];
let point, series;
if (this !== innerSeries) {
point = innerSeries.data[this.index - 1];
series = this;
} else {
point = e.point;
series = this.chart.series[point.index + 1];
}
point.update({
sliced: true
}, false);
translateSeries(series, innerSeries.center, point.slicedTranslation)
};
const colors = Highcharts.getOptions().colors;
const translateSeries = function(series, center, translation) {
const cx = center[0],
cy = center[1];
series.update({
center: [cx + translation.translateX, cy + translation.translateY]
});
};
const translate = function(e) {
const innerSeries = this.chart.series[0];
let point, series;
if (this !== innerSeries) {
point = innerSeries.data[this.index - 1];
series = this;
} else {
point = e.point;
series = this.chart.series[point.index + 1];
}
point.update({
sliced: true
}, false);
translateSeries(series, innerSeries.center, point.slicedTranslation)
};
Highcharts.chart('container', {
chart: {
type: 'pie'
},
plotOptions: {
pie: {
ignoreHiddenPoint: false,
slicedOffset: 0,
size: '80%',
innerSize: '60%',
colorByPoint: false,
dataLabels: {
enabled: false
},
events: {
click: translate
}
}
},
series: [{
name: 'Browsers',
keys: ['y'],
data: [40, 30, 30],
size: '80%',
innerSize: 0,
slicedOffset: 20,
colorByPoint: true
}, {
data: [20, 20, {
y: 60,
visible: false
}]
}, {
color: colors[1],
data: [{
y: 40,
visible: false
}, 10, 10, 10, {
y: 30,
visible: false
}]
}, {
color: colors[2],
data: [{
y: 70,
visible: false
}, 5, 5, 5, 15]
}]
});
<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container" style="height: 400px; width: 500"></div>
关于highcharts - Highchart 双层 donut 将内部和外部 donut 滑动在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42120250/
如何将导出模块包含到 angular2 应用程序中? 我尝试将以下脚本添加到 index.html 但没有任何反应。 最佳答案 从 Angular CLI 1.0-RC.1 和最新的 angular
我正在为 Web 应用程序使用 HighCharts Javascript 库。当我下载 Highchart 时,我需要 Highchart 水印图像。 我正在使用普通的 hicgchart 代码。
我是 highcharts 的新手。默认情况下,Highchart 在图表本身内显示工具提示。这是否可以在图表外部显示工具提示,并显示在与内部显示相同的位置。有帮助吗? 最佳答案 您可以定义自己的 d
我正在尝试使用日期时间格式的数据创建 highcharts 热图。数据以小时为单位,持续数天。我不希望图表每天都环绕,但希望所有数据都在一条线上。 具体来说,它用于显示每小时的云量百分比,因此每个热图
我正在用 angular 中的简单图形来验证 highcharts。但是导出按钮不显示。我在 html 页面中添加脚本: 并在图表中添加属性: export :true, navigat
我很想知道为什么按钮 2 在这个 example 中不起作用 在这个 jsfiddle 示例中,附加到按钮 1 的“更新”方法正在运行,但在我的原始代码中,“更新”也不起作用。它显示错误:“对象# 没
我正在尝试在 highcharts 中编辑工具提示的边框。 我遇到的问题是我只想显示底部边框。 例如,您可以执行以下操作: tooltip: {borderWidth: 10}//但问题是在整个工具提
Highcharts的十字线可以显示在面积图的顶部而不是隐藏在其下方吗? 这是问题jsfiddle.net/hHjZb/1286/的示例 最佳答案 更新: Highcharts现在已经实现了the O
在将图表导出为PNG时,我试图在饼图上添加图例。 这是我的代码: var chart_23_106; $(document).ready(function () { chart_23_106 = ne
带三角规的半圆饼 如何在图表顶部创建带有三角形仪表的上述半圆饼图。 我的车速表可以工作,但不能满足需要。 在highchart api中有没有办法使用三角形作为仪表,而不是车速表? 谢谢 最佳答案 这
我们使用的是Highchart气泡图,但是,当气泡x和y在图中位于同一位置且气泡y较小时,将无法看到或单击得很少的气泡。 有什么方法可以先绘制较大的气泡,然后在顶部绘制较小的气泡?还是说较小的始终位于
是否可以使用百分比设置 Highcharts 的宽度?每当调整页面大小时,图表应具有足够的响应速度以适合页面大小吗? One Solution 这里的问题是我有3个图表需要并排显示,每次调整页面大小时
我在更新基本列 Highcharts 时遇到问题。 我从服务器返回的 json 数组是: [{"name":"positive","data":[18,35,32,38]},{"name":"nega
有没有办法创建重叠的列? 例如在 this jsFiddle ,蓝色和红色列应如下所示相互重叠,蓝色在后面,红色在前面。 澄清一下,我不想要堆叠的列,蓝色和红色列都应该从 xAxis (y=0) 开始
如何自定义图例 从 对此 最佳答案 查看 Highcharts legend api 选项。您可以使用所需的 css 进一步自定义。使用适当的 svg 图像(背景颜色取自图表本身) legend: {
我正在尝试使用模式作为列范围以允许条形图工作。 图案出现但不使用预定义的图案,所以它只是纯蓝色。通常它使用已定义的条纹图案,并在散点图等上完美运行。 这是一个片段,展示了我的意思: Highchar
我正在使用 HighStock JS 库生成一个图表,该图表使用 xAxis 的线性序列(不是时间序列)。 我仍然想使用范围选择器来缩放到我的线性系列中的预定范围。这可能吗? 例如;说我的 xAxis
我需要从一个系列向下钻取到多个系列。但是下钻 id 在一个系列上似乎是唯一的,这意味着我无法从单个系列下钻到多个系列;只有一个。我该如何解决这个问题? 最佳答案 可以使用 chart.addSingl
我制作了一个带有分组和堆叠列的Highcharts图表,就像在这里的示例http://www.highcharts.com/demo/column-stacked-and-grouped一样。该示例显
如何在 highcharts/highstock 中将滚动条位置设置为Left? 如图表加载时的图像所示, 滚动条自动右对齐。 有没有办法将它定位到左侧? 最佳答案 我们可以通过将 min 设置为 0
我是一名优秀的程序员,十分优秀!