【ggplot2番外編】企業の年収ランキングで遊ぶ~facetする意味について~
17歳冬、私は「北海道には梅雨が無いよ」と言われ
札幌にやって来ました。
・・・あれから5年。
・・・・・・騙された気持ちでいっぱいです。(蝦夷梅雨)
注意書き
最近はクラスタリングやらコロプレスやら色々やってましたが、
今回は番外編です。
・間違った図を
・そのまんま
・公開してみよう
以上です。
なんか思ってたのと違う、ってなった話と
それに気づくまでの過程を述べて終わります。
分析っぽいことすらしてません
全般的にくだらないので短いです。
テーマ
・(高所得者への嫉妬がピークなので)年収ランキングを集めたい
・そういえばサブグループの図って作ったことなかったからやりたい
そもそもこのデータとやりたいことが一致してないのがその後詰まる原因に。
データ
東洋経済さんの「年収トップ企業500」のうち1~100位の企業をcsv化
1社ごとの業種(証券コード協議会のものに準拠)、本社本店所在地をセット
nensyu<-read.csv("nensyu_rank.csv",header=TRUE) gyosyu<-read.csv("gyosyu.csv",header=TRUE) nensyu_kako<-nensyu[,-2] > nensyu_kako rank nensyu age ninzu area gyosyu 1 1 1947 29.9 36 tokyo 9050 2 2 1506 43.4 35 tokyo 5250 3 3 1499 51.3 70 tokyo 5250 4 4 1479 42.3 650 tokyo 5250 5 5 1454 47.0 1232 tokyo 5250 6 6 1440 34.8 2038 osaka 3650 7 7 1412 34.5 160 tokyo 9050 8 8 1395 42.1 1130 tokyo 5250 9 9 1384 41.3 4274 tokyo 6050 10 10 1356 42.8 6358 tokyo 6050 11 11 1351 42.4 6160 tokyo 6050 12 12 1351 44.8 1879 tokyo 5250 13 13 1304 42.7 5413 tokyo 6050 14 14 1303 51.3 1705 tokyo 6050 15 15 1275 41.7 4385 tokyo 6050 16 16 1268 41.7 116 tokyo 8050 17 17 1240 40.1 80 tokyo 3650 18 18 1221 44.5 113 tokyo 5250 19 19 1205 42.7 223 hukuoka 5250 20 20 1191 39.1 7384 tokyo 9050 21 21 1184 46.7 19 tokyo 8050 22 22 1174 44.0 40 tokyo 7050 23 23 1172 41.8 448 tokyo 7150 24 24 1157 44.5 102 tokyo 3300 25 25 1152 41.2 604 tokyo 7100 26 26 1146 38.9 185 tokyo 5250 27 27 1138 42.2 321 aichi 5250 28 28 1119 33.5 90 tokyo 9050 29 29 1119 46.7 310 tokyo 9050 30 30 1118 39.8 146 tokyo 7100 31 31 1107 40.7 711 tokyo 8050 32 32 1107 46.3 25 tokyo 5250 33 33 1101 41.3 1296 tokyo 8050 34 34 1095 47.9 69 tokyo 3250 35 35 1091 38.7 6026 tokyo 5250 36 36 1080 44.3 73 tokyo 3250 37 37 1070 45.2 118 tokyo 3200 38 38 1066 45.7 100 tokyo 3200 39 39 1056 41.0 116 tokyo 7100 40 40 1052 44.2 196 tokyo 9050 41 41 1052 42.2 2271 tokyo 6050 42 42 1041 36.2 370 tokyo 9050 43 43 1041 40.5 2809 aichi 6050 44 44 1041 42.7 36 tokyo 8050 45 45 1040 43.7 3502 tokyo 3250 46 46 1036 42.3 5744 tokyo 3250 47 47 1035 41.7 6578 tokyo 3250 48 48 1026 44.2 105 tokyo 2050 49 49 1017 46.5 21 osaka 8050 50 50 1014 42.4 244 tokyo 7100 51 51 1010 40.1 2427 tokyo 5250 52 52 1009 41.1 277 tokyo 5250 53 53 1008 42.6 273 tokyo 3050 54 54 995 43.6 85 tokyo 7150 55 55 995 44.7 48 tokyo 8050 56 56 985 35.7 414 tokyo 9050 57 57 983 43.2 2238 kanagawa 2050 58 58 980 43.4 2661 yamanashi 2050 59 59 975 43.7 209 tokyo 7100 60 60 974 39.9 1136 tokyo 5100 61 61 971 43.6 34 tokyo 3050 62 62 969 38.9 482 tokyo 3050 63 63 965 42.0 38 tokyo 4050 64 64 965 42.7 881 tokyo 5250 65 65 963 38.1 61 osaka 8050 66 66 960 39.3 2025 tokyo 7100 67 67 960 41.5 9965 tokyo 2050 68 68 958 44.9 11 tokyo 7100 69 69 955 46.5 10 tokyo 7200 70 70 950 42.8 74 tokyo 3100 71 71 944 41.7 1630 kanagawa 2050 72 72 944 41.7 118 okayama 9050 73 73 943 38.8 6734 osaka 3250 74 74 943 44.5 37 tokyo 3450 75 75 940 43.1 2332 osaka 3200 76 76 939 41.4 10837 tokyo 5250 77 77 938 41.0 110 tokyo 9050 78 78 937 41.5 4932 tokyo 3250 79 79 937 43.0 1485 tokyo 2050 80 80 935 44.5 953 tokyo 3300 81 81 934 47.8 56 tokyo 5250 82 82 934 49.7 75 kanagawa 5050 83 83 930 39.6 1499 tokyo 1050 84 84 925 38.3 35 tokyo 7100 85 85 924 44.5 212 tokyo 9050 86 86 917 38.3 230 chiba 5100 87 87 916 43.1 188 kanagawa 3650 88 88 909 41.7 3518 tokyo 3050 89 89 909 46.6 38 osaka 3250 90 90 908 45.4 2888 tokyo 3650 91 91 907 36.7 142 tokyo 5100 92 92 907 40.9 422 tokyo 8050 93 93 901 53.4 12 kanagawa 6050 94 94 900 45.4 61 tokyo 9050 95 95 899 44.1 21 tokyo 7100 96 96 898 38.1 2393 tokyo 7100 97 97 896 45.5 108 tokyo 3250 98 98 896 37.6 892 tokyo 5100 99 99 896 41.6 67 osaka 5050 100 100 895 44.9 1696 tokyo 2050 101 101 895 47.1 38 tokyo 5250 #業種コードをキーに業種名を別途JOIN library(dplyr) nensyu_kako<-dplyr::left_join(nensyu_kako,gyosyu,by = "gyosyu") #従業員数を離散化してクラス分け library(infotheo) x=infotheo::discretize(subset(nensyu_kako,select=ninzu),disc="equalwidth") colnames(x)<-c("ninzu_class") nensyu_kako<-cbind(nensyu_kako,x) #データ完成 > nensyu_kako rank nensyu age ninzu area gyosyu gyosyu_name ninzu_class 1 1 1947 29.9 36 tokyo 9050 サービス業 1 2 2 1506 43.4 35 tokyo 5250 情報・通信業 1 3 3 1499 51.3 70 tokyo 5250 情報・通信業 1 4 4 1479 42.3 650 tokyo 5250 情報・通信業 1 5 5 1454 47.0 1232 tokyo 5250 情報・通信業 1 6 6 1440 34.8 2038 osaka 3650 電気機器 1 7 7 1412 34.5 160 tokyo 9050 サービス業 1 8 8 1395 42.1 1130 tokyo 5250 情報・通信業 1 9 9 1384 41.3 4274 tokyo 6050 卸売業 2 10 10 1356 42.8 6358 tokyo 6050 卸売業 3 11 11 1351 42.4 6160 tokyo 6050 卸売業 3 12 12 1351 44.8 1879 tokyo 5250 情報・通信業 1 13 13 1304 42.7 5413 tokyo 6050 卸売業 2 14 14 1303 51.3 1705 tokyo 6050 卸売業 1 15 15 1275 41.7 4385 tokyo 6050 卸売業 2 16 16 1268 41.7 116 tokyo 8050 不動産業 1 17 17 1240 40.1 80 tokyo 3650 電気機器 1 18 18 1221 44.5 113 tokyo 5250 情報・通信業 1 19 19 1205 42.7 223 hukuoka 5250 情報・通信業 1 20 20 1191 39.1 7384 tokyo 9050 サービス業 3 21 21 1184 46.7 19 tokyo 8050 不動産業 1 22 22 1174 44.0 40 tokyo 7050 銀行業 1 23 23 1172 41.8 448 tokyo 7150 保険業 1 24 24 1157 44.5 102 tokyo 3300 石油・石炭製品 1 25 25 1152 41.2 604 tokyo 7100 証券、商品先物取引業 1 26 26 1146 38.9 185 tokyo 5250 情報・通信業 1 27 27 1138 42.2 321 aichi 5250 情報・通信業 1 28 28 1119 33.5 90 tokyo 9050 サービス業 1 29 29 1119 46.7 310 tokyo 9050 サービス業 1 30 30 1118 39.8 146 tokyo 7100 証券、商品先物取引業 1 31 31 1107 40.7 711 tokyo 8050 不動産業 1 32 32 1107 46.3 25 tokyo 5250 情報・通信業 1 33 33 1101 41.3 1296 tokyo 8050 不動産業 1 34 34 1095 47.9 69 tokyo 3250 医薬品 1 35 35 1091 38.7 6026 tokyo 5250 情報・通信業 3 36 36 1080 44.3 73 tokyo 3250 医薬品 1 37 37 1070 45.2 118 tokyo 3200 化学 1 38 38 1066 45.7 100 tokyo 3200 化学 1 39 39 1056 41.0 116 tokyo 7100 証券、商品先物取引業 1 40 40 1052 44.2 196 tokyo 9050 サービス業 1 41 41 1052 42.2 2271 tokyo 6050 卸売業 1 42 42 1041 36.2 370 tokyo 9050 サービス業 1 43 43 1041 40.5 2809 aichi 6050 卸売業 2 44 44 1041 42.7 36 tokyo 8050 不動産業 1 45 45 1040 43.7 3502 tokyo 3250 医薬品 2 46 46 1036 42.3 5744 tokyo 3250 医薬品 3 47 47 1035 41.7 6578 tokyo 3250 医薬品 3 48 48 1026 44.2 105 tokyo 2050 建設業 1 49 49 1017 46.5 21 osaka 8050 不動産業 1 50 50 1014 42.4 244 tokyo 7100 証券、商品先物取引業 1 51 51 1010 40.1 2427 tokyo 5250 情報・通信業 1 52 52 1009 41.1 277 tokyo 5250 情報・通信業 1 53 53 1008 42.6 273 tokyo 3050 食料品 1 54 54 995 43.6 85 tokyo 7150 保険業 1 55 55 995 44.7 48 tokyo 8050 不動産業 1 56 56 985 35.7 414 tokyo 9050 サービス業 1 57 57 983 43.2 2238 kanagawa 2050 建設業 1 58 58 980 43.4 2661 yamanashi 2050 建設業 1 59 59 975 43.7 209 tokyo 7100 証券、商品先物取引業 1 60 60 974 39.9 1136 tokyo 5100 海運業 1 61 61 971 43.6 34 tokyo 3050 食料品 1 62 62 969 38.9 482 tokyo 3050 食料品 1 63 63 965 42.0 38 tokyo 4050 電気・ガス業 1 64 64 965 42.7 881 tokyo 5250 情報・通信業 1 65 65 963 38.1 61 osaka 8050 不動産業 1 66 66 960 39.3 2025 tokyo 7100 証券、商品先物取引業 1 67 67 960 41.5 9965 tokyo 2050 建設業 4 68 68 958 44.9 11 tokyo 7100 証券、商品先物取引業 1 69 69 955 46.5 10 tokyo 7200 その他金融業 1 70 70 950 42.8 74 tokyo 3100 繊維製品 1 71 71 944 41.7 1630 kanagawa 2050 建設業 1 72 72 944 41.7 118 okayama 9050 サービス業 1 73 73 943 38.8 6734 osaka 3250 医薬品 3 74 74 943 44.5 37 tokyo 3450 鉄鋼 1 75 75 940 43.1 2332 osaka 3200 化学 1 76 76 939 41.4 10837 tokyo 5250 情報・通信業 4 77 77 938 41.0 110 tokyo 9050 サービス業 1 78 78 937 41.5 4932 tokyo 3250 医薬品 2 79 79 937 43.0 1485 tokyo 2050 建設業 1 80 80 935 44.5 953 tokyo 3300 石油・石炭製品 1 81 81 934 47.8 56 tokyo 5250 情報・通信業 1 82 82 934 49.7 75 kanagawa 5050 陸運業 1 83 83 930 39.6 1499 tokyo 1050 鉱業 1 84 84 925 38.3 35 tokyo 7100 証券、商品先物取引業 1 85 85 924 44.5 212 tokyo 9050 サービス業 1 86 86 917 38.3 230 chiba 5100 海運業 1 87 87 916 43.1 188 kanagawa 3650 電気機器 1 88 88 909 41.7 3518 tokyo 3050 食料品 2 89 89 909 46.6 38 osaka 3250 医薬品 1 90 90 908 45.4 2888 tokyo 3650 電気機器 2 91 91 907 36.7 142 tokyo 5100 海運業 1 92 92 907 40.9 422 tokyo 8050 不動産業 1 93 93 901 53.4 12 kanagawa 6050 卸売業 1 94 94 900 45.4 61 tokyo 9050 サービス業 1 95 95 899 44.1 21 tokyo 7100 証券、商品先物取引業 1 96 96 898 38.1 2393 tokyo 7100 証券、商品先物取引業 1 97 97 896 45.5 108 tokyo 3250 医薬品 1 98 98 896 37.6 892 tokyo 5100 海運業 1 99 99 896 41.6 67 osaka 5050 陸運業 1 100 100 895 44.9 1696 tokyo 2050 建設業 1 101 101 895 47.1 38 tokyo 5250 情報・通信業 1
ただランキングを並べるとこんな感じ
library(ggplot2) nensyu_kako$gyosyu<-as.factor(nensyu_kako$gyosyu) ggplot2::ggplot(nensyu_kako,aes(x=rank,y=nensyu,colour=gyosyu_name))+ geom_point()
業種で色分けしてみたものの
もっとグループごとに見やすくしないことには始まらない
ggplot2のfacetを使ってみよう
どうやら
図を垂直・水平方向にサブグループで分割出来るらしい
ということは知っていましたが
どうもその「垂直」「水平」に分割するということがいまいちピンときていなかったので
やってみた
変な図その①:垂直・水平両方に切ってみる
#業種とエリア(本社所在地)で分割 ggplot2::ggplot(nensyu_kako,aes(x=rank,y=nensyu,colour=gyosyu_name))+ geom_point()+ facet_grid(gyosyu_name~area)
????
違くね???
変な図その②:水平方向に切ってみる
#エリアで水平に分割 ggplot2::ggplot(nensyu_kako,aes(x=rank,y=nensyu,colour=gyosyu_name))+ geom_point()+ facet_grid(area~.)
????
違くね???
ここで
年収データをY軸にしている今、
グループ間で比較したいのは「年収」であり
それを分割してはいけないのだと気が付いたので
少し何かを察してきた図①
#エリアで垂直に分割 ggplot2::ggplot(nensyu_kako,aes(x=rank,y=nensyu,colour=gyosyu_name))+ geom_point()+ facet_grid(.~area)
少し何かを掴みかけてきました
しかしながら東京以外に本社or本店を持つ企業が少なすぎてアレなんで
少し何かを察してきた図②
#従業員人数クラスで垂直に分割 ggplot2::ggplot(nensyu_kako,aes(x=rank,y=nensyu,colour=gyosyu_name))+ geom_point()+ facet_grid(.~ninzu_class)
(人数クラスは等間隔で分けてるので
約3000人くらいずつ1~4に分割されてるはず)
ここまでくると
年収トップ100位以内の企業は
1~3000人規模の企業が多め、でも従業員規模によって順位自体に違いがあるとは言えなそう
ってのが見えてきました
業種と従業員数にはちょっとした関連があるかも・・・というのも。
まとめにならないまとめ
はじめてfacetしてみて
・水平方向に分割
X軸をグループ別に比較したいとき→時系列データとかによいかも
・垂直方向に分割
Y軸をグループ別に比較したいとき→今回みたいなやつとか
という感覚を得ました
ふつーに箱ひげ図でいいと言われてしまえばそれまでなものの。
年収に関しては大して何の知見も得てません。
現場からは以上です。
番外編でした。