[R] Differentiate values in a plot by colour or symbol
Tobias Christoph
s3tochri at uni-bayreuth.de
Tue May 30 20:44:47 CEST 2017
Okay;)
First of all many thanks to you, Ismail, that you really try to help me.
I am really not an expert with R and try to learn.
I just checked: All columns in my data frame are numeric. The range of
years is from 2005 to 2016.
Please find attached the result of "data.frame(data)". I also attached
it as Excel-file
>data.frame(data) town year revenue stations
1 Bremen 2005 39.91036 1
2 Bremen 2006 43.34265 1
3 Bremen 2007 44.03614 1
4 Bremen 2008 43.19945 1
5 Bremen 2009 39.05230 1
6 Bremen 2010 44.24626 1
7 Bremen 2011 46.19309 35
8 Bremen 2012 48.59513 101
9 Bremen 2013 48.15778 181
10 Bremen 2014 48.83199 323
11 Bremen 2015 48.68549 463
12 Bremen 2016 50.00000 614
13 Dresden 2005 42.27858 1
14 Dresden 2006 50.39606 1
15 Dresden 2007 48.73299 1
16 Dresden 2008 42.69010 1
17 Dresden 2009 40.81174 1
18 Dresden 2010 47.09675 2
19 Dresden 2011 49.16900 43
20 Dresden 2012 48.13645 151
21 Dresden 2013 48.13645 284
22 Dresden 2014 49.77309 511
23 Dresden 2015 51.51515 773
24 Dresden 2016 51.00000 1057
25 Düsseldorf 2005 44.23227 1
26 Düsseldorf 2006 46.70928 1
27 Düsseldorf 2007 51.24008 1
28 Düsseldorf 2008 61.59058 1
29 Düsseldorf 2009 45.70021 1
30 Düsseldorf 2010 57.17096 8
31 Düsseldorf 2011 60.60122 115
32 Düsseldorf 2012 65.50992 339
33 Düsseldorf 2013 64.06870 636
34 Düsseldorf 2014 71.56474 1117
35 Düsseldorf 2015 68.20119 1622
36 Düsseldorf 2016 80.00000 2117
37 Essen 2005 37.71029 1
38 Essen 2006 44.61127 1
39 Essen 2007 41.39926 1
40 Essen 2008 49.34792 1
41 Essen 2009 38.49137 1
42 Essen 2010 51.57844 1
43 Essen 2011 48.38058 29
44 Essen 2012 50.17066 42
45 Essen 2013 49.26759 90
46 Essen 2014 50.20367 162
47 Essen 2015 47.89430 258
48 Essen 2016 58.00000 370
49 Frankfurt 2005 47.97355 1
50 Frankfurt 2006 50.37223 1
51 Frankfurt 2007 49.11292 1
52 Frankfurt 2008 49.65316 1
53 Frankfurt 2009 44.53889 3
54 Frankfurt 2010 54.02567 15
55 Frankfurt 2011 56.29475 80
56 Frankfurt 2012 59.10949 223
57 Frankfurt 2013 62.30140 488
58 Frankfurt 2014 62.67521 836
59 Frankfurt 2015 66.93712 1319
60 Frankfurt 2016 66.00000 1744
61 Hannover 2005 39.82472 1
62 Hannover 2006 41.25841 1
63 Hannover 2007 40.80456 1
64 Hannover 2008 42.19192 1
65 Hannover 2009 36.96012 1
66 Hannover 2010 45.83055 5
67 Hannover 2011 49.86364 35
68 Hannover 2012 51.11023 167
69 Hannover 2013 52.69465 351
70 Hannover 2014 56.22519 983
71 Hannover 2015 56.95612 1413
72 Hannover 2016 61.00000 1864
73 Leipzig 2005 29.05982 1
74 Leipzig 2006 34.52306 1
75 Leipzig 2007 35.97303 1
76 Leipzig 2008 40.03798 1
77 Leipzig 2009 37.67574 2
78 Leipzig 2010 44.19365 3
79 Leipzig 2011 44.72397 53
80 Leipzig 2012 49.55416 223
81 Leipzig 2013 52.92384 488
82 Leipzig 2014 53.50600 918
83 Leipzig 2015 54.62963 1517
84 Leipzig 2016 59.00000 2037
85 Nürnberg 2005 43.51885 1
86 Nürnberg 2006 49.13278 1
87 Nürnberg 2007 46.92181 1
88 Nürnberg 2008 52.03628 1
89 Nürnberg 2009 43.45030 1
90 Nürnberg 2010 55.44258 5
91 Nürnberg 2011 57.21674 48
92 Nürnberg 2012 62.36625 145
93 Nürnberg 2013 61.49312 297
94 Nürnberg 2014 66.22809 505
95 Nürnberg 2015 63.38028 813
96 Nürnberg 2016 72.00000 1101
97 Rostock 2005 32.56640 1
98 Rostock 2006 30.71011 1
99 Rostock 2007 33.71970 1
100 Rostock 2008 34.25922 1
101 Rostock 2009 34.60181 1
102 Rostock 2010 40.17270 1
103 Rostock 2011 42.06082 3
104 Rostock 2012 42.43937 15
105 Rostock 2013 43.67011 43
106 Rostock 2014 43.93213 93
107 Rostock 2015 47.35883 174
108 Rostock 2016 52.00000 243
109 Stuttgart 2005 50.72972 1
110 Stuttgart 2006 58.74502 1
111 Stuttgart 2007 53.45797 1
112 Stuttgart 2008 56.18432 1
113 Stuttgart 2009 46.29588 1
114 Stuttgart 2010 56.38839 2
115 Stuttgart 2011 58.92586 33
116 Stuttgart 2012 61.16505 96
117 Stuttgart 2013 60.12524 200
118 Stuttgart 2014 65.89726 409
119 Stuttgart 2015 71.49853 661
120 Stuttgart 2016 73.00000 853
121 Wiebaden 2005 37.40724 1
122 Wiebaden 2006 38.94093 1
123 Wiebaden 2007 38.08423 1
124 Wiebaden 2008 38.23657 1
125 Wiebaden 2009 34.98646 1
126 Wiebaden 2010 40.72424 2
127 Wiebaden 2011 44.59304 8
128 Wiebaden 2012 47.58078 27
129 Wiebaden 2013 46.86706 59
130 Wiebaden 2014 46.58586 110
131 Wiebaden 2015 48.12320 163
132 Wiebaden 2016 50.00000 220
Am 30.05.2017 um 20:30 schrieb Ismail SEZEN:
>
>> On 30 May 2017, at 21:23, Tobias Christoph <s3tochri at uni-bayreuth.de
>> <mailto:s3tochri at uni-bayreuth.de>> wrote:
>>
>> Ahh, okay.
>>
>> I think now I understand what you exactly mean. But the plot is stil
>> not working /differentiate the dots by color. I used the following
>> formula.
>>
>> "plot(data$stations, data$revenue, xlab="stations", ylab="revenue",
>> col = findInterval(data$year, c(2005, 2010, 2015))"
>>
>> I think the problem is stil related to the term "col =
>> findInterval(data$year, c(2005, 2010, 2015))" and its notation.
>>
>> Just to make sure: "data" is the name of the data-table imported in
>> R. "year" is the lable of the column where the years are listed in
>> the data-table?
>>
> Exactly. Make sure all the columns in data.frame are numeric. Also I
> don’t know the range of years. You should arrange arguments to
> findInterval according your data. If you would send a minimal example
> as stated in posting guide [1], you will have your answer in second
> email :).
>
> 1- http://www.R-project.org/posting-guide.html
>
>> Cheers
>>
>>
>>
>> Am 30.05.2017 um 19:57 schrieb Ismail SEZEN:
>>>
>>>> On 30 May 2017, at 20:48, Tobias Christoph
>>>> <s3tochri at uni-bayreuth.de <mailto:s3tochri at uni-bayreuth.de>> wrote:
>>>>
>>>> Hi Ismael,
>>>>
>>>> thanks for your quick reply.
>>>>
>>>> I was now able to esmitate two intervals with the
>>>> "findInterval"-Function.
>>>>
>>>> x
>>>> [1,] 2005 1
>>>> [2,] 2006 1
>>>> [3,] 2007 1
>>>> [4,] 2008 1
>>>> [5,] 2009 1
>>>> [6,] 2010 1
>>>> [7,] 2011 2
>>>> [8,] 2012 2
>>>> [9,] 2013 2
>>>> [10,] 2014 2
>>>> [11,] 2015 2
>>>> [12,] 2016 2
>>>>
>>>> But I was not able to connect the intervals with the plot-function.
>>>> I used the following formular.
>>>>
>>>> "plot(data$stations, data$revenue, xlab="stations", ylab="revenue",
>>>> col(findInterval())"
>>>>
>>> In fact I should say “feed _col_ or _pch_ argument with the result
>>> of findInterval” as below:
>>>
>>> plot(data$stations, data$revenue, xlab="stations", ylab="revenue",
>>> col = findInterval(x$year, c(2005, 2010, 2015))
>>>
>>> Please note that If you have many (20-30) intervals, colour handling
>>> will be more complex. But I assume you have maximum 5-10 intervals.
>>> So, the piece of code above will work for you.
>>>
>>>> How can I proceed and get the plot-funktion running?
>>>>
>>>> Maybe it is not running because the years as single numbers are
>>>> already contained in my data-frame?
>>>>
>>>> Cheers,
>>>>
>>>> Toby
>>>>
>>>>
>>>>
>>>> Am 30.05.2017 um 18:26 schrieb Ismail SEZEN:
>>>>>> On 30 May 2017, at 19:02, Tobias Christoph<s3tochri at uni-bayreuth.de> wrote:
>>>>>>
>>>>>> Hey Guys,
>>>>>>
>>>>>> I just try to differentiate certain values in my plot by colour or symbol.
>>>>>>
>>>>>> I have panel data with three dimensions (number of stations, revenue,
>>>>>> years). To integrate the third dimension (years) in the plot, I want to
>>>>>> differentiate the values(number of stations, revenue) by a certain range
>>>>>> of years.
>>>>>>
>>>>>> e.g.: 2005-2010: red coloured dots, 2011-2016, blue coloured dots
>>>>>>
>>>>>> For the normal plot I used the following formula:
>>>>>>
>>>>>> *plot(data$stations, data$revenue, xlab="stations", ylab="revenue")*
>>>>>>
>>>>>> I only found a way to mark every single year. So hopefully you can help?
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Toby
>>>>>>
>>>>> See ?findInterval. Especially, first 3 lines in _Examples_ section. Use result of findInterval as argument to _col_ or _pch_ in plot function.
>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the R-help
mailing list