0

I have a line series with Y AXIS = Opportunity Closed Date X AXIS = Opportunity stage OpportunityFeedback has 4 picklist values. Based on that I was planning to spread the data into scatter series and give MarkerFill a different colour for each series.

<apex:chart data="{!TotalData}" height="200" width="90%" background="#FFFFFF"> <apex:legend position="top"/> <apex:axis type="Numeric" position="left" grid="false" fields="OpportunityStage" dashSize="2"> <apex:chartLabel /> </apex:axis> <apex:axis type="Category" position="bottom" fields="OpportunityClosedDate" > <apex:chartLabel rotate="315"/> </apex:axis> <apex:lineSeries axis="left" xField="OpportunityClosedDate" yField="What should be put?" markerType="circle" markerSize="0" markerFill="#8E35EF" tips="false"> <apex:chartTips height="80" width="120" labelField="OpportunityStage" valueField="ToolTip"/> </apex:lineseries> <apex:scatterSeries axis="left" xField="OpportunityClosedDate" yField="What should be put?" markerType="circle" markerSize="4" markerFill="#1919ff"/> </apex:chart> 

How to spread data in an apex series?

*TotalData is the name of the method which returns the data.

3
  • What do you want to display, if you have two opp-ies with same date & stage, but different feed? Commented May 10, 2016 at 20:42
  • Can you draw some mock chart in paint and describe what do you want to see. Commented May 10, 2016 at 20:44
  • @IlyaLepesh - Mock chart would be almost like something you had drawn in your answer here salesforce.stackexchange.com/questions/121034/… . I want to segregate data based on the picklist value of a field and give different colour to each series. For example , if pickkistvalue= option 1 , the marker would have colour as green , if option 2 colour would be blue . Let me know if it's clear. Commented May 11, 2016 at 5:31

1 Answer 1

0

Please note that I'm displaying single opportunity for particular date. In case if you have several opp-ies for single day - markers could be overlapped.

VF:

<apex:page controller="ChartController2" showHeader="false" sidebar="false"> <apex:chart height="480" width="640" data="{!data}"> <apex:axis type="Category" position="bottom" fields="closed" title="Month of the Year" grid="true"> <apex:chartLabel rotate="315"/> </apex:axis> <apex:axis type="Numeric" position="left" fields="stage" title="Stage - Closed Won"/> <apex:lineSeries axis="left" xField="closed" yField="stage" markerType="circle" markerSize="0" markerFill="#8E35EF" /> <apex:scatterSeries axis="left" xField="closed" yField="gold" markerType="circle" markerSize="4" markerFill="#FFD700"/> <apex:scatterSeries axis="left" xField="closed" yField="silver" markerType="circle" markerSize="4" markerFill="#c0c0c0" /> </apex:chart> </apex:page> 

Apex:

public class ChartController2 { public List<Data> getData() { return ChartController2.getChartData(); } @RemoteAction public static List<Data> getRemoteData() { return ChartController2.getChartData(); } public static List<Data> getChartData() { List<Data> data = new List<Data>(); list<opportunity> oppList = [select closedate, feedback__c, value__c from opportunity where stagename = 'Closed Won' order by closedate desc limit 10]; for (opportunity opp :oppList) { decimal gint = -20; decimal sint = -20; if (opp.feedback__c == 'Gold') gint = opp.value__c; else if (opp.feedback__c == 'Silver') sint = opp.value__c; data.add(new Data(opp.closedate.format(), opp.value__c, gint, sint)); } system.debug (oppList); return data; } public class Data { public String closed { get; set; } public decimal stage { get; set; } public decimal gold { get; set; } public decimal silver { get; set; } public Data(String closed, decimal stage, decimal gold, decimal silver) { this.stage = stage; this.closed = closed; this.gold = gold; this.silver = silver; } } } 

Where opp-ies:

Opportunity:{CloseDate=2016-02-18 00:00:00, feedback__c=silver, value__c=13}, Opportunity:{CloseDate=2015-03-25 00:00:00, feedback__c=silver, value__c=30}, Opportunity:{CloseDate=2014-12-10 00:00:00, feedback__c=bronze, value__c=12}, 
1
  • I am working on the same requirement.. if I have two opportunities with the same date then it shows two different line for them instead of pointing them in same line. Commented Nov 30, 2016 at 21:41

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.