BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
Anita_n
Pyrite | Level 9

Dear all, I wish to plot a graph which has a series and a scatter plot in it :  Hier is the original data

Sector 2012 2013 2014 2015 2016 2017 2018 2019
Bank 1 825 846 846 847 865 862 850 868
Bank 2 810 829 845 845 853 848 846 872
Bank 3 834 822 836 833 850 856 844 854
Bank 4 797 808 825 789 820 823 832 853
Bank 5 849 851 851 851 858 862 842 861
Bank 6 838 841 825 840 845 848 829 853
Bank 7 787 803 798 828 845 843 840 849
Bank 8 792 800 815 821 835 834 832 849
Bank 9 795 807 820 825 843 834 839 855
Bank 10 834 837 826 842 839 853 838 868
Bank 11 810 833 837 838 852 858 849 871
Bank 12 807 820 807 815 845 837 848 846
Bank 13 811 800 804 805 831 831 827 847
Bank 14 804 827 829 829 837 836 823 854
Bank 15 784 798 798 790 830 828 818 852
Bank 16 818 811 824 815 848 837 833 851
Bank 17 795 786 794 803 817 817 819 856
Bank 18 823 829 811 831 837 850 827 866
Bank 19 775 775 769 783 806 813 800 832
Bank 20 757 771 789 804 813 822 809 852
Bank 21 767 759 757 704 751 768 771 811
Bank 22 772 761 755 758 791 792 787 826
Average sector 795 800 804 812 830 832 824 846
Bank A 774 785 805 833 839 843 827 836

 

I want the scatter plot  for all the 22 banks and the series for Bank A and Average sector . I tried doing that by tranposing the table to become this: 

Sector Year Value
Bank 1 2012 825
Bank 2 2012 810
Bank 3 2012 834
Bank 4 2012 797
Bank 5 2012 849
Bank 6 2012 838
Bank 7 2012 787
Bank 8 2012 792
Bank 9 2012 795
Bank 10 2012 834
Bank 11 2012 810
Bank 12 2012 807
Bank 13 2012 811
Bank 14 2012 804
Bank 15 2012 784
Bank 16 2012 818
Bank 17 2012 795
Bank 18 2012 823
Bank 19 2012 775
Bank 20 2012 757
Bank 21 2012 767
Bank 22 2012 772
Average sector 2012 795
Bank A 2012 774
Bank 1 2013 846
Bank 2 2013 829
Bank 3 2013 822
Bank 4 2013 808
Bank 5 2013 851
Bank 6 2013 841
Bank 7 2013 803
Bank 8 2013 800
Bank 9 2013 807
Bank 10 2013 837
Bank 11 2013 833
Bank 12 2013 820
Bank 13 2013 800
Bank 14 2013 827
Bank 15 2013 798
Bank 16 2013 811
Bank 17 2013 786
Bank 18 2013 829
Bank 19 2013 775
Bank 20 2013 771
Bank 21 2013 759
Bank 22 2013 761
Average sector 2013 800
Bank A 2013 785
Bank 1 2014 846
Bank 2 2014 845
Bank 3 2014 836
Bank 4 2014 825
Bank 5 2014 851
Bank 6 2014 825
Bank 7 2014 798
Bank 8 2014 815
Bank 9 2014 820
Bank 10 2014 826
Bank 11 2014 837
Bank 12 2014 807
Bank 13 2014 804
Bank 14 2014 829
Bank 15 2014 798
Bank 16 2014 824
Bank 17 2014 794
Bank 18 2014 811
Bank 19 2014 769
Bank 20 2014 789
Bank 21 2014 757
Bank 22 2014 755
Average sector 2014 804
Bank A 2014 805
Bank 1 2015 847
Bank 2 2015 845
Bank 3 2015 833
Bank 4 2015 789
Bank 5 2015 851
Bank 6 2015 840
Bank 7 2015 828
Bank 8 2015 821
Bank 9 2015 825
Bank 10 2015 842
Bank 11 2015 838
Bank 12 2015 815
Bank 13 2015 805
Bank 14 2015 829
Bank 15 2015 790
Bank 16 2015 815
Bank 17 2015 803
Bank 18 2015 831
Bank 19 2015 783
Bank 20 2015 804
Bank 21 2015 704
Bank 22 2015 758
Average sector 2015 812
Bank A 2015 833
Bank 1 2016 865
Bank 2 2016 853
Bank 3 2016 850
Bank 4 2016 820
Bank 5 2016 858
Bank 6 2016 845
Bank 7 2016 845
Bank 8 2016 835
Bank 9 2016 843
Bank 10 2016 839
Bank 11 2016 852
Bank 12 2016 845
Bank 13 2016 831
Bank 14 2016 837
Bank 15 2016 830
Bank 16 2016 848
Bank 17 2016 817
Bank 18 2016 837
Bank 19 2016 806
Bank 20 2016 813
Bank 21 2016 751
Bank 22 2016 791
Average sector 2016 830
Bank A 2016 839
Bank 1 2017 862
Bank 2 2017 848
Bank 3 2017 856
Bank 4 2017 823
Bank 5 2017 862
Bank 6 2017 848
Bank 7 2017 843
Bank 8 2017 834
Bank 9 2017 834
Bank 10 2017 853
Bank 11 2017 858
Bank 12 2017 837
Bank 13 2017 831
Bank 14 2017 836
Bank 15 2017 828
Bank 16 2017 837
Bank 17 2017 817
Bank 18 2017 850
Bank 19 2017 813
Bank 20 2017 822
Bank 21 2017 768
Bank 22 2017 792
Average sector 2017 832
Bank A 2017 843
Bank 1 2018 850
Bank 2 2018 846
Bank 3 2018 844
Bank 4 2018 832
Bank 5 2018 842
Bank 6 2018 829
Bank 7 2018 840
Bank 8 2018 832
Bank 9 2018 839
Bank 10 2018 838
Bank 11 2018 849
Bank 12 2018 848
Bank 13 2018 827
Bank 14 2018 823
Bank 15 2018 818
Bank 16 2018 833
Bank 17 2018 819
Bank 18 2018 827
Bank 19 2018 800
Bank 20 2018 809
Bank 21 2018 771
Bank 22 2018 787
Average sector 2018 824
Bank A 2018 827
Bank 1 2019 868
Bank 2 2019 872
Bank 3 2019 854
Bank 4 2019 853
Bank 5 2019 861
Bank 6 2019 853
Bank 7 2019 849
Bank 8 2019 849
Bank 9 2019 855
Bank 10 2019 868
Bank 11 2019 871
Bank 12 2019 846
Bank 13 2019 847
Bank 14 2019 854
Bank 15 2019 852
Bank 16 2019 851
Bank 17 2019 856
Bank 18 2019 866
Bank 19 2019 832
Bank 20 2019 852
Bank 21 2019 811
Bank 22 2019 826
Average sector 2019 846
Bank A 2019 836

 

and using this code:

proc sgplot data=CombinedData;
    /* Scatter plot for all banks except "Bank A" and "Sector Average" */
    scatter x=Year y=Value / group=Group 
        markerattrs=(symbol=circlefilled size=10 color=gray) transparency=0.5; 

    /* Series plot for "Bank A" */
    series x=Year y=Value / group=Group 
        lineattrs=(thickness=2 color=red)  markerattrs=(size=6 )   legendlabel="Bank A"; 

    /* Series plot for "Sector Average" */
    series x=Year y=Value / group=Group 
        lineattrs=(thickness=2 color=yellow) 
        markerattrs=(size=6) legendlabel="Sector Average"; 

    /* Titles and Labels */
    title "Satisfaction with Face-to-Face User Support (2012-2019)";
    xaxis label="Year" values=(2012 to 2019 by 1);
    yaxis label="Satisfaction Value" values=(700 to 900 by 20) grid;
    
    /* Legend Position */
    keylegend / location=inside position=topright across=1;
run;

 but unfortunately am not getting it. I will be happly if someone can help.

I was also wondering if there is a better way to illustrate this data than using this method 

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User
data have;
infile cards expandtabs truncover;
input Sector & $40.	Year	Value;
cards;
Bank 1	   2012	825
Bank 2	   2012	810
Bank 3	   2012	834
Bank 4	   2012	797
Bank 5	   2012	849
Bank 6	   2012	838
Bank 7	   2012	787
Bank 8	   2012	792
Bank 9	   2012	795
Bank 10	   2012	834
Bank 11	   2012	810
Bank 12	   2012	807
Bank 13	   2012	811
Bank 14	   2012	804
Bank 15	   2012	784
Bank 16	   2012	818
Bank 17	   2012	795
Bank 18	   2012	823
Bank 19	   2012	775
Bank 20	   2012	757
Bank 21	   2012	767
Bank 22	   2012	772
Average sector  	2012	795
Bank A	  2012	774
Bank 1	  2013	846
Bank 2	  2013	829
Bank 3	  2013	822
Bank 4	  2013	808
Bank 5	  2013	851
Bank 6	  2013	841
Bank 7	  2013	803
Bank 8	  2013	800
Bank 9	  2013	807
Bank 10	  2013	837
Bank 11	  2013	833
Bank 12	  2013	820
Bank 13	  2013	800
Bank 14	  2013	827
Bank 15	  2013	798
Bank 16	  2013	811
Bank 17	  2013	786
Bank 18	  2013	829
Bank 19	  2013	775
Bank 20	  2013	771
Bank 21	  2013	759
Bank 22	  2013	761
Average sector   	2013	800
Bank A	  2013	785
Bank 1	  2014	846
Bank 2	  2014	845
Bank 3	  2014	836
Bank 4	  2014	825
Bank 5	  2014	851
Bank 6	  2014	825
Bank 7	  2014	798
Bank 8	  2014	815
Bank 9	  2014	820
Bank 10	  2014	826
Bank 11	  2014	837
Bank 12	  2014	807
Bank 13	  2014	804
Bank 14	  2014	829
Bank 15	  2014	798
Bank 16	  2014	824
Bank 17	  2014	794
Bank 18	  2014	811
Bank 19	  2014	769
Bank 20	  2014	789
Bank 21	  2014	757
Bank 22	  2014	755
Average sector	  2014	804
Bank A	   2014	805
Bank 1	   2015	847
Bank 2	   2015	845
Bank 3	   2015	833
Bank 4	   2015	789
Bank 5	   2015	851
Bank 6	   2015	840
Bank 7	   2015	828
Bank 8	   2015	821
Bank 9	   2015	825
Bank 10	   2015	842
Bank 11	   2015	838
Bank 12	   2015	815
Bank 13	   2015	805
Bank 14	   2015	829
Bank 15	   2015	790
Bank 16	   2015	815
Bank 17	   2015	803
Bank 18	   2015	831
Bank 19	   2015	783
Bank 20	   2015	804
Bank 21	   2015	704
Bank 22	   2015	758
Average sector	  2015	812
Bank A	   2015	833
Bank 1	   2016	865
Bank 2	   2016	853
Bank 3	   2016	850
Bank 4	   2016	820
Bank 5	   2016	858
Bank 6	   2016	845
Bank 7	   2016	845
Bank 8	   2016	835
Bank 9	   2016	843
Bank 10	   2016	839
Bank 11	   2016	852
Bank 12	   2016	845
Bank 13	   2016	831
Bank 14	   2016	837
Bank 15	   2016	830
Bank 16	   2016	848
Bank 17	   2016	817
Bank 18	   2016	837
Bank 19	   2016	806
Bank 20	   2016	813
Bank 21	   2016	751
Bank 22	   2016	791
Average sector	   2016	830
Bank A	   2016	839
Bank 1	   2017	862
Bank 2	   2017	848
Bank 3	   2017	856
Bank 4	   2017	823
Bank 5	   2017	862
Bank 6	   2017	848
Bank 7	   2017	843
Bank 8	   2017	834
Bank 9	   2017	834
Bank 10	   2017	853
Bank 11	   2017	858
Bank 12	   2017	837
Bank 13	   2017	831
Bank 14	   2017	836
Bank 15	   2017	828
Bank 16	   2017	837
Bank 17	   2017	817
Bank 18	   2017	850
Bank 19	   2017	813
Bank 20	   2017	822
Bank 21	   2017	768
Bank 22	   2017	792
Average sector	  2017	832
Bank A	   2017	843
Bank 1	   2018	850
Bank 2	   2018	846
Bank 3	   2018	844
Bank 4	   2018	832
Bank 5	   2018	842
Bank 6	   2018	829
Bank 7	   2018	840
Bank 8	   2018	832
Bank 9	   2018	839
Bank 10	   2018	838
Bank 11	   2018	849
Bank 12	   2018	848
Bank 13	   2018	827
Bank 14	   2018	823
Bank 15	   2018	818
Bank 16	   2018	833
Bank 17	   2018	819
Bank 18	   2018	827
Bank 19	   2018	800
Bank 20	   2018	809
Bank 21	   2018	771
Bank 22	   2018	787
Average sector	   2018	824
Bank A	   2018	827
Bank 1	   2019	868
Bank 2	   2019	872
Bank 3	   2019	854
Bank 4	   2019	853
Bank 5	   2019	861
Bank 6	   2019	853
Bank 7	   2019	849
Bank 8	   2019	849
Bank 9	   2019	855
Bank 10	   2019	868
Bank 11	   2019	871
Bank 12	   2019	846
Bank 13	   2019	847
Bank 14	   2019	854
Bank 15	   2019	852
Bank 16	   2019	851
Bank 17	   2019	856
Bank 18	   2019	866
Bank 19	   2019	832
Bank 20	   2019	852
Bank 21	   2019	811
Bank 22	   2019	826
Average sector	  2019	846
Bank A	   2019	836
;

proc sort data=have;by Sector year;run;
data have2;
merge have(where=(Sector not in ('Average sector' 'Bank A')))
      have(where=(s in ('Average sector' 'Bank A')) rename=(Sector=s year=y value=v));
run;
proc sgplot data=have2 noautolegend;
    /* Scatter plot for all banks except "Bank A" and "Sector Average" */
    scatter x=Year y=Value / group=sector 
        markerattrs=(symbol=circlefilled size=10 color=gray) transparency=0.5; 

    /* Series plot for "Bank A" */
    series x=y y=v / group=s 
        lineattrs=(thickness=2) markers markerattrs=(symbol=circlefilled size=6 )   curvelabel curvelabelloc=outside; 

    /* Titles and Labels */
    title "Satisfaction with Face-to-Face User Support (2012-2019)";
    xaxis label="Year" values=(2012 to 2019 by 1);
    yaxis label="Satisfaction Value" values=(700 to 900 by 20) grid;
    
run;

Ksharp_0-1742434817861.png

 

 

But I prefer to use  spaghetti plot:

https://blogs.sas.com/content/sastraining/2016/10/25/the-perfect-storm-for-state-fair-attendance/

https://blogs.sas.com/content/iml/2016/06/02/create-spaghetti-plots-in-sas.html


proc sgplot data=have2 noautolegend;
    /* Scatter plot for all banks except "Bank A" and "Sector Average" */
    series x=Year y=Value / group=sector  lineattrs=(thickness=2 pattern=solid color=grey) transparency=0.8; 

    /* Series plot for "Bank A" */
    series x=y y=v / group=s  lineattrs=(thickness=2)     curvelabel curvelabelloc=outside; 

    /* Titles and Labels */
    title "Satisfaction with Face-to-Face User Support (2012-2019)";
    xaxis label="Year" values=(2012 to 2019 by 1);
    yaxis label="Satisfaction Value" values=(700 to 900 by 20) grid;
    
run;

Ksharp_1-1742435175194.png

 

View solution in original post

2 REPLIES 2
PaigeMiller
Diamond | Level 26

unfortunately am not getting it


Explain what is wrong. Show us screen captures of these plots. Explain what you would like to see.

 

Please provide data as working SAS data step code (examples and instructions). Please do not provide data as copy and paste from Excel or similar. Please do not provide data as Excel files.

--
Paige Miller
Ksharp
Super User
data have;
infile cards expandtabs truncover;
input Sector & $40.	Year	Value;
cards;
Bank 1	   2012	825
Bank 2	   2012	810
Bank 3	   2012	834
Bank 4	   2012	797
Bank 5	   2012	849
Bank 6	   2012	838
Bank 7	   2012	787
Bank 8	   2012	792
Bank 9	   2012	795
Bank 10	   2012	834
Bank 11	   2012	810
Bank 12	   2012	807
Bank 13	   2012	811
Bank 14	   2012	804
Bank 15	   2012	784
Bank 16	   2012	818
Bank 17	   2012	795
Bank 18	   2012	823
Bank 19	   2012	775
Bank 20	   2012	757
Bank 21	   2012	767
Bank 22	   2012	772
Average sector  	2012	795
Bank A	  2012	774
Bank 1	  2013	846
Bank 2	  2013	829
Bank 3	  2013	822
Bank 4	  2013	808
Bank 5	  2013	851
Bank 6	  2013	841
Bank 7	  2013	803
Bank 8	  2013	800
Bank 9	  2013	807
Bank 10	  2013	837
Bank 11	  2013	833
Bank 12	  2013	820
Bank 13	  2013	800
Bank 14	  2013	827
Bank 15	  2013	798
Bank 16	  2013	811
Bank 17	  2013	786
Bank 18	  2013	829
Bank 19	  2013	775
Bank 20	  2013	771
Bank 21	  2013	759
Bank 22	  2013	761
Average sector   	2013	800
Bank A	  2013	785
Bank 1	  2014	846
Bank 2	  2014	845
Bank 3	  2014	836
Bank 4	  2014	825
Bank 5	  2014	851
Bank 6	  2014	825
Bank 7	  2014	798
Bank 8	  2014	815
Bank 9	  2014	820
Bank 10	  2014	826
Bank 11	  2014	837
Bank 12	  2014	807
Bank 13	  2014	804
Bank 14	  2014	829
Bank 15	  2014	798
Bank 16	  2014	824
Bank 17	  2014	794
Bank 18	  2014	811
Bank 19	  2014	769
Bank 20	  2014	789
Bank 21	  2014	757
Bank 22	  2014	755
Average sector	  2014	804
Bank A	   2014	805
Bank 1	   2015	847
Bank 2	   2015	845
Bank 3	   2015	833
Bank 4	   2015	789
Bank 5	   2015	851
Bank 6	   2015	840
Bank 7	   2015	828
Bank 8	   2015	821
Bank 9	   2015	825
Bank 10	   2015	842
Bank 11	   2015	838
Bank 12	   2015	815
Bank 13	   2015	805
Bank 14	   2015	829
Bank 15	   2015	790
Bank 16	   2015	815
Bank 17	   2015	803
Bank 18	   2015	831
Bank 19	   2015	783
Bank 20	   2015	804
Bank 21	   2015	704
Bank 22	   2015	758
Average sector	  2015	812
Bank A	   2015	833
Bank 1	   2016	865
Bank 2	   2016	853
Bank 3	   2016	850
Bank 4	   2016	820
Bank 5	   2016	858
Bank 6	   2016	845
Bank 7	   2016	845
Bank 8	   2016	835
Bank 9	   2016	843
Bank 10	   2016	839
Bank 11	   2016	852
Bank 12	   2016	845
Bank 13	   2016	831
Bank 14	   2016	837
Bank 15	   2016	830
Bank 16	   2016	848
Bank 17	   2016	817
Bank 18	   2016	837
Bank 19	   2016	806
Bank 20	   2016	813
Bank 21	   2016	751
Bank 22	   2016	791
Average sector	   2016	830
Bank A	   2016	839
Bank 1	   2017	862
Bank 2	   2017	848
Bank 3	   2017	856
Bank 4	   2017	823
Bank 5	   2017	862
Bank 6	   2017	848
Bank 7	   2017	843
Bank 8	   2017	834
Bank 9	   2017	834
Bank 10	   2017	853
Bank 11	   2017	858
Bank 12	   2017	837
Bank 13	   2017	831
Bank 14	   2017	836
Bank 15	   2017	828
Bank 16	   2017	837
Bank 17	   2017	817
Bank 18	   2017	850
Bank 19	   2017	813
Bank 20	   2017	822
Bank 21	   2017	768
Bank 22	   2017	792
Average sector	  2017	832
Bank A	   2017	843
Bank 1	   2018	850
Bank 2	   2018	846
Bank 3	   2018	844
Bank 4	   2018	832
Bank 5	   2018	842
Bank 6	   2018	829
Bank 7	   2018	840
Bank 8	   2018	832
Bank 9	   2018	839
Bank 10	   2018	838
Bank 11	   2018	849
Bank 12	   2018	848
Bank 13	   2018	827
Bank 14	   2018	823
Bank 15	   2018	818
Bank 16	   2018	833
Bank 17	   2018	819
Bank 18	   2018	827
Bank 19	   2018	800
Bank 20	   2018	809
Bank 21	   2018	771
Bank 22	   2018	787
Average sector	   2018	824
Bank A	   2018	827
Bank 1	   2019	868
Bank 2	   2019	872
Bank 3	   2019	854
Bank 4	   2019	853
Bank 5	   2019	861
Bank 6	   2019	853
Bank 7	   2019	849
Bank 8	   2019	849
Bank 9	   2019	855
Bank 10	   2019	868
Bank 11	   2019	871
Bank 12	   2019	846
Bank 13	   2019	847
Bank 14	   2019	854
Bank 15	   2019	852
Bank 16	   2019	851
Bank 17	   2019	856
Bank 18	   2019	866
Bank 19	   2019	832
Bank 20	   2019	852
Bank 21	   2019	811
Bank 22	   2019	826
Average sector	  2019	846
Bank A	   2019	836
;

proc sort data=have;by Sector year;run;
data have2;
merge have(where=(Sector not in ('Average sector' 'Bank A')))
      have(where=(s in ('Average sector' 'Bank A')) rename=(Sector=s year=y value=v));
run;
proc sgplot data=have2 noautolegend;
    /* Scatter plot for all banks except "Bank A" and "Sector Average" */
    scatter x=Year y=Value / group=sector 
        markerattrs=(symbol=circlefilled size=10 color=gray) transparency=0.5; 

    /* Series plot for "Bank A" */
    series x=y y=v / group=s 
        lineattrs=(thickness=2) markers markerattrs=(symbol=circlefilled size=6 )   curvelabel curvelabelloc=outside; 

    /* Titles and Labels */
    title "Satisfaction with Face-to-Face User Support (2012-2019)";
    xaxis label="Year" values=(2012 to 2019 by 1);
    yaxis label="Satisfaction Value" values=(700 to 900 by 20) grid;
    
run;

Ksharp_0-1742434817861.png

 

 

But I prefer to use  spaghetti plot:

https://blogs.sas.com/content/sastraining/2016/10/25/the-perfect-storm-for-state-fair-attendance/

https://blogs.sas.com/content/iml/2016/06/02/create-spaghetti-plots-in-sas.html


proc sgplot data=have2 noautolegend;
    /* Scatter plot for all banks except "Bank A" and "Sector Average" */
    series x=Year y=Value / group=sector  lineattrs=(thickness=2 pattern=solid color=grey) transparency=0.8; 

    /* Series plot for "Bank A" */
    series x=y y=v / group=s  lineattrs=(thickness=2)     curvelabel curvelabelloc=outside; 

    /* Titles and Labels */
    title "Satisfaction with Face-to-Face User Support (2012-2019)";
    xaxis label="Year" values=(2012 to 2019 by 1);
    yaxis label="Satisfaction Value" values=(700 to 900 by 20) grid;
    
run;

Ksharp_1-1742435175194.png

 

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 874 views
  • 0 likes
  • 3 in conversation