primefaces barchart : displaying data point on bar

家住魔仙堡 提交于 2019-12-10 11:42:10

问题


how can I display data point on bar in barchart?

I don't want to use datatip or tooltip which will highlight data points only when they are moused over.

I want to display the data point always on the bar.

is there any right way to get it?

thanks.

I want exactly like this

following is my code

<p:barChart id="barChartId" value="#{myBean.myModel}"             
        orientation="horizontal"             
        stacked="true" extender="ext" animate="true" shadow="false" />              
<h:outputScript>         
  function ext() {  
    this.cfg.highlighter = {
             useAxesFormatters: false,
             tooltipAxes: 'x'   
    };      
    this.cfg.legend = {
            show: true,
            location: 'ne',
            placement: 'outside'
    }; 
    this.cfg.seriesDefaults = {
            pointLabels : { show: true },
    };              
  }        
</h:outputScript>

here, highlighter and legend are working fine but point labels are not displaying on bar


回答1:


Not sure if it will work...

Use the extender of the <p:barChart , like this:

<p:barChart value="#{myBean.myModel}" widgetVar="myBarChart" extender="my_ext"/>


<script type="text/javascript">
    function my_ext() {
        this.cfg.seriesDefaults = {
            renderer:$.jqplot.BarRenderer,
            pointLabels: {show: true}
        };
        this.cfg.stackSeries: true;
    }
</script>

or this

<script type="text/javascript">
    function my_ext() {
        this.cfg.seriesDefaults = {
            pointLabels: {show: true}
        };
        this.cfg.stackSeries: true;
    }
</script>

Also take a look at the jqplot examples : Bar charts




回答2:


Just in case someone doesn't crawl through the comments of the marked answer, as I didn't do in the first place.

The problem basically is not the configuration of the pointLabelselement, but rather that primefaces (as of 4.0) in its original state does not ship with the needed plugin of jqPlot included.

Therefore actually the solution is to make the needed plugin jqplot.pointLabels.min.js available. From a ticket in the bug tracker (http://code.google.com/p/primefaces/issues/detail?id=5378) I extracted, that primefaces uses jqPlot version 1.0.8.

  • download jqplot 1.0.8 from https://bitbucket.org/cleonello/jqplot/downloads/
  • add the plugin to your project (e.g. src/main/webapp/resources/jqplot-plugins)
  • add the plugin as script to your page (<h:outputScript library="jqplot-plugins" name="jqplot.pointLabels.min.js" />)


来源:https://stackoverflow.com/questions/16250638/primefaces-barchart-displaying-data-point-on-bar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!