2016-01-21 22 views
0

我一直在嘗試更改使用Highcharts創建的條形圖中單個列的寬度。這是一個codepen在Highcharts中設置單個條的寬度

在我所做的所有搜索中,我只能找到兩個在這個question中給出的解決方案。

問題在於,因爲它們是在初始化之後設置的,所以任何調用redraw方法的操作都會將它們的寬度恢復爲計算的寬度。

另外,我不明白爲什麼他們正在使用series[0].data[5].graphic.attr('width')以及它如何影響,因爲我沒有在對象看到這樣的屬性(console screenshot

最後,在codepen我也改變同一點的顏色,但在初始化函數中執行。我想知道是否有辦法在寬度上做同樣的事情。

我錯過了什麼嗎?因爲我沒有在API文檔中找到任何內容,並且我對這些解決方案如果實際上如果對象中沒有這樣的屬性實際上工作無能爲力。

回答

0

簡短說明:

  • attr方法是從Element類繼承。您可以在原型中看到該方法(在控制檯中單擊__proto__)。方法attr以兩種方式工作:attr(property_name)是吸氣劑(用於獲得例如寬度)並且attr({ property_name: value })是設置器(用於設置例如寬度)。如果您使用源文件(.src.js),那麼您會注意到SVGElement類。

  • 寬度將在任何redraw事件中發生變化,因爲它會再次被重新計算(如更新點或調整窗口大小)。事實上,你可以使用chart.events.redraw並且改變寬度。實際上,我將同時使用chart.events.redrawchart.events.load兩個函數來更新寬度。

,並解釋,爲什麼你不能設置寬度點,就像你用顏色做的事:有沒有點水平這樣的選擇,像pointWidth。您只能爲一個系列中的所有點設置特定的寬度(使用提到的pointWidth)。 Highcharts有一個想法,可以添加這樣的功能(核心或插件)。隨意在UserVoice上投票。這裏有一個有趣的例子:http://jsfiddle.net/75oucp3b/14/(與v4.1.8一起使用)