R ggplot 对数对数刻度
R ggplot log log scale
我有一个绘图,我想将它转换成对数对数刻度。我尝试了不同的解决方案,但其中 none 没有创建正确的对数对数图。
原剧情是这样的
我用这个脚本来绘制它。
plot(ggplot(data=the.table[[i]],aes(x=the.table[[i]]$friends_count,y=the.table[[i]]$degree.in))+
labs(x="Friends Count",y="Degree In")+
geom_point(color="#56B4E9")+ggtitle(paste(i,"Degree In-Friends Count",collapse="")))
x 轴和 y 轴上的值之间的差异非常大,所以我想用对数对数比例绘制它
我搜索了 stcakoverflow 以找到解决方案,然后我将脚本更改为这样。
plot(ggplot(data=the.table[[i]],aes(x=the.table[[i]]$friends_count,y=the.table[[i]]$degree.in))+
scale_x_log10(limits = c(1, NA),
labels = trans_format("log10", math_format(10^.x)),
breaks=trans_breaks("log10", function(x) 10^x, n=6)) +
scale_y_log10(limits = c(1, NA),
labels = trans_format("log10", math_format(10^.x)),
breaks=trans_breaks("log10", function(x) 10^x, n=6)) +
labs(x="Friends Count",y="Degree In")+
geom_point(color="#56B4E9")+ggtitle(paste(i,"Degree In-Friends Count",collapse="")))
它生成了带有警告消息的情节:
Warning messages:
1: In scale$trans$trans(x) : NaNs produced
2: Removed 1 rows containing missing values (geom_point).
你有什么建议吗?谢谢。
我已经放了示例数据以备不时之需:
structure(list(screen_name = structure(c(70L, 29L, 91L, 37L,
99L, 33L, 46L, 26L, 63L, 48L, 80L, 17L, 15L, 89L, 88L, 82L, 69L,
77L, 30L, 12L, 58L, 93L, 64L, 65L, 67L, 41L, 62L, 10L, 74L, 76L,
1L, 9L, 47L, 35L, 24L, 14L, 71L, 72L, 34L, 23L, 39L, 11L, 52L,
57L, 86L, 22L, 100L, 3L, 2L, 53L, 78L, 36L, 97L, 84L, 90L, 8L,
45L, 38L, 50L, 55L, 96L, 61L, 13L, 16L, 43L, 60L, 85L, 32L, 20L,
83L, 66L, 59L, 56L, 94L, 54L, 31L, 73L, 79L, 18L, 44L, 40L, 4L,
27L, 19L, 92L, 95L, 75L, 21L, 25L, 6L, 28L, 87L, 7L, 51L, 81L,
68L, 5L, 42L, 49L, 98L), .Label = c("_Anahtar_", "_fani__", "_uzumce",
"28BeyzaTosun", "2cerkesoglu", "34fuzuli34RT", "abatila", "Adimozr",
"AforizmaYazar", "ahmetfuadi", "Ak_ekip_rt", "Ak_Ekip_Rte", "ak_parti_tt",
"AkgenclikBerlin", "AkGercekler", "AkkulisAK", "Akparti_AkRTE",
"akreperol1955", "AlparslanTurk06", "aozturk70", "asimm4th",
"ASLAN__5", "AyAzyahu", "bavehayran", "bbulentkayar", "be_yaz_ca",
"BennKerem", "BerilDeniz77", "bilalardic_", "billpostmus", "bizimmmemleket",
"BULUT__USTASI", "BurakFBSensoy", "cayelirize", "CicekciKiz_",
"DobraUzunAdam", "DogrulariYaziyo", "ebaabil", "efendi_insan",
"Elmanoglu_Drvs", "emre_izmir_", "ErsoyMehmetAkf", "esma_fb_3437",
"esrefynbsn", "fatihcaglayan25", "favlasanaa", "FenaYazar", "filiz_paker",
"GabrielAydin", "gonul_insani_", "HanZala32", "holy_sin", "InstagramPlus",
"IsmetOnc", "KaankutAatay", "kamilekucuker24", "karikatu_r",
"KemalAta34", "kiliskilis79", "KIRMIZI_BEY4Z_G", "MahirAytekin",
"MakarnaSos", "MarkGKirshner", "MazlumunFedaisi", "MercanSureyya",
"MerterSibel", "MoRHoPi", "muhacir1887", "NormanBuffong", "oncevatan81",
"OrbisTertius3", "osmanlit0runu", "Oyuna_GelmeTR", "ResmiZaytung",
"rt_liyorum", "RTerdog4n", "RTErdog4n", "Saglam_Iradee", "Sanki_biri",
"Semih_Kural", "sessiz_ciglik0", "sevdamizzz", "sezerhsn", "siyaset__name",
"Siyasi_Yazar", "son3er", "Sussam_Olmuyor_", "Telefizyon", "trakyali77",
"twit_komedyeni", "TwitineGeldim", "uguronal", "ultrasKan1071",
"yakupaltinoz", "Yazar212", "YEA1453", "Yn1Dunya", "Yobaz_Zeynep",
"Yobaz4K", "zekibahce"), class = "factor"), degree.in = c(0L,
0L, 0L, 0L, 3L, 0L, 0L, 35L, 0L, 0L, 12L, 0L, 71L, 0L, 29L, 0L,
0L, 330L, 0L, 0L, 207L, 0L, 2L, 337L, 0L, 23L, 0L, 113L, 0L,
112L, 19L, 0L, 0L, 29L, 0L, 0L, 0L, 10L, 13L, 9L, 0L, 0L, 0L,
0L, 26L, 0L, 185L, 0L, 285L, 0L, 49L, 152L, 0L, 0L, 11L, 96L,
1324L, 45L, 0L, 0L, 3L, 1110L, 0L, 0L, 38L, 0L, 40L, 0L, 4L,
7L, 0L, 13L, 103L, 0L, 40L, 65L, 12L, 0L, 0L, 0L, 2L, 0L, 0L,
0L, 562L, 0L, 0L, 0L, 225L, 0L, 0L, 93L, 0L, 70L, 0L, 0L, 1L,
0L, 0L, 4L), friends_count = c(549982L, 360141L, 292551L, 264835L,
192642L, 190477L, 153839L, 127660L, 126163L, 124043L, 115284L,
113246L, 109422L, 107159L, 105183L, 101006L, 100667L, 99427L,
98606L, 97909L, 95053L, 94830L, 92558L, 90112L, 89117L, 88388L,
87969L, 87650L, 86907L, 85422L, 85395L, 84870L, 84747L, 83611L,
83357L, 82381L, 82227L, 81084L, 80187L, 78807L, 76336L, 76231L,
73940L, 73840L, 73759L, 73669L, 73324L, 73268L, 72944L, 72806L,
71729L, 71208L, 70621L, 69982L, 69669L, 69432L, 69391L, 68880L,
68478L, 67651L, 67514L, 66855L, 66472L, 66396L, 66309L, 65044L,
64248L, 64038L, 63455L, 63275L, 62500L, 62388L, 61696L, 61212L,
61154L, 61077L, 60700L, 60487L, 60426L, 60265L, 60264L, 58954L,
58907L, 58903L, 58671L, 58086L, 57856L, 57793L, 57127L, 56910L,
56508L, 56506L, 56466L, 56378L, 56343L, 56334L, 56314L, 56169L,
55864L, 55858L)), .Names = c("screen_name", "degree.in", "friends_count"
), class = "data.frame", row.names = c(NA, -100L))
示例数据包含多个 degree.in
为零的条目。零的对数是-Inf
,有时表示为NA
。在任何情况下,它在图中都不是一个有意义的值。如果您想以对数刻度表示,我建议您确保所有数据点都具有正值。
您可以尝试绘制数据的相应子集,例如,
the.table_pos <- the.table[the.table$degree.in > 0,]
我有一个绘图,我想将它转换成对数对数刻度。我尝试了不同的解决方案,但其中 none 没有创建正确的对数对数图。
原剧情是这样的
我用这个脚本来绘制它。
plot(ggplot(data=the.table[[i]],aes(x=the.table[[i]]$friends_count,y=the.table[[i]]$degree.in))+
labs(x="Friends Count",y="Degree In")+
geom_point(color="#56B4E9")+ggtitle(paste(i,"Degree In-Friends Count",collapse="")))
x 轴和 y 轴上的值之间的差异非常大,所以我想用对数对数比例绘制它
我搜索了 stcakoverflow 以找到解决方案,然后我将脚本更改为这样。
plot(ggplot(data=the.table[[i]],aes(x=the.table[[i]]$friends_count,y=the.table[[i]]$degree.in))+
scale_x_log10(limits = c(1, NA),
labels = trans_format("log10", math_format(10^.x)),
breaks=trans_breaks("log10", function(x) 10^x, n=6)) +
scale_y_log10(limits = c(1, NA),
labels = trans_format("log10", math_format(10^.x)),
breaks=trans_breaks("log10", function(x) 10^x, n=6)) +
labs(x="Friends Count",y="Degree In")+
geom_point(color="#56B4E9")+ggtitle(paste(i,"Degree In-Friends Count",collapse="")))
它生成了带有警告消息的情节:
Warning messages:
1: In scale$trans$trans(x) : NaNs produced
2: Removed 1 rows containing missing values (geom_point).
你有什么建议吗?谢谢。
我已经放了示例数据以备不时之需:
structure(list(screen_name = structure(c(70L, 29L, 91L, 37L,
99L, 33L, 46L, 26L, 63L, 48L, 80L, 17L, 15L, 89L, 88L, 82L, 69L,
77L, 30L, 12L, 58L, 93L, 64L, 65L, 67L, 41L, 62L, 10L, 74L, 76L,
1L, 9L, 47L, 35L, 24L, 14L, 71L, 72L, 34L, 23L, 39L, 11L, 52L,
57L, 86L, 22L, 100L, 3L, 2L, 53L, 78L, 36L, 97L, 84L, 90L, 8L,
45L, 38L, 50L, 55L, 96L, 61L, 13L, 16L, 43L, 60L, 85L, 32L, 20L,
83L, 66L, 59L, 56L, 94L, 54L, 31L, 73L, 79L, 18L, 44L, 40L, 4L,
27L, 19L, 92L, 95L, 75L, 21L, 25L, 6L, 28L, 87L, 7L, 51L, 81L,
68L, 5L, 42L, 49L, 98L), .Label = c("_Anahtar_", "_fani__", "_uzumce",
"28BeyzaTosun", "2cerkesoglu", "34fuzuli34RT", "abatila", "Adimozr",
"AforizmaYazar", "ahmetfuadi", "Ak_ekip_rt", "Ak_Ekip_Rte", "ak_parti_tt",
"AkgenclikBerlin", "AkGercekler", "AkkulisAK", "Akparti_AkRTE",
"akreperol1955", "AlparslanTurk06", "aozturk70", "asimm4th",
"ASLAN__5", "AyAzyahu", "bavehayran", "bbulentkayar", "be_yaz_ca",
"BennKerem", "BerilDeniz77", "bilalardic_", "billpostmus", "bizimmmemleket",
"BULUT__USTASI", "BurakFBSensoy", "cayelirize", "CicekciKiz_",
"DobraUzunAdam", "DogrulariYaziyo", "ebaabil", "efendi_insan",
"Elmanoglu_Drvs", "emre_izmir_", "ErsoyMehmetAkf", "esma_fb_3437",
"esrefynbsn", "fatihcaglayan25", "favlasanaa", "FenaYazar", "filiz_paker",
"GabrielAydin", "gonul_insani_", "HanZala32", "holy_sin", "InstagramPlus",
"IsmetOnc", "KaankutAatay", "kamilekucuker24", "karikatu_r",
"KemalAta34", "kiliskilis79", "KIRMIZI_BEY4Z_G", "MahirAytekin",
"MakarnaSos", "MarkGKirshner", "MazlumunFedaisi", "MercanSureyya",
"MerterSibel", "MoRHoPi", "muhacir1887", "NormanBuffong", "oncevatan81",
"OrbisTertius3", "osmanlit0runu", "Oyuna_GelmeTR", "ResmiZaytung",
"rt_liyorum", "RTerdog4n", "RTErdog4n", "Saglam_Iradee", "Sanki_biri",
"Semih_Kural", "sessiz_ciglik0", "sevdamizzz", "sezerhsn", "siyaset__name",
"Siyasi_Yazar", "son3er", "Sussam_Olmuyor_", "Telefizyon", "trakyali77",
"twit_komedyeni", "TwitineGeldim", "uguronal", "ultrasKan1071",
"yakupaltinoz", "Yazar212", "YEA1453", "Yn1Dunya", "Yobaz_Zeynep",
"Yobaz4K", "zekibahce"), class = "factor"), degree.in = c(0L,
0L, 0L, 0L, 3L, 0L, 0L, 35L, 0L, 0L, 12L, 0L, 71L, 0L, 29L, 0L,
0L, 330L, 0L, 0L, 207L, 0L, 2L, 337L, 0L, 23L, 0L, 113L, 0L,
112L, 19L, 0L, 0L, 29L, 0L, 0L, 0L, 10L, 13L, 9L, 0L, 0L, 0L,
0L, 26L, 0L, 185L, 0L, 285L, 0L, 49L, 152L, 0L, 0L, 11L, 96L,
1324L, 45L, 0L, 0L, 3L, 1110L, 0L, 0L, 38L, 0L, 40L, 0L, 4L,
7L, 0L, 13L, 103L, 0L, 40L, 65L, 12L, 0L, 0L, 0L, 2L, 0L, 0L,
0L, 562L, 0L, 0L, 0L, 225L, 0L, 0L, 93L, 0L, 70L, 0L, 0L, 1L,
0L, 0L, 4L), friends_count = c(549982L, 360141L, 292551L, 264835L,
192642L, 190477L, 153839L, 127660L, 126163L, 124043L, 115284L,
113246L, 109422L, 107159L, 105183L, 101006L, 100667L, 99427L,
98606L, 97909L, 95053L, 94830L, 92558L, 90112L, 89117L, 88388L,
87969L, 87650L, 86907L, 85422L, 85395L, 84870L, 84747L, 83611L,
83357L, 82381L, 82227L, 81084L, 80187L, 78807L, 76336L, 76231L,
73940L, 73840L, 73759L, 73669L, 73324L, 73268L, 72944L, 72806L,
71729L, 71208L, 70621L, 69982L, 69669L, 69432L, 69391L, 68880L,
68478L, 67651L, 67514L, 66855L, 66472L, 66396L, 66309L, 65044L,
64248L, 64038L, 63455L, 63275L, 62500L, 62388L, 61696L, 61212L,
61154L, 61077L, 60700L, 60487L, 60426L, 60265L, 60264L, 58954L,
58907L, 58903L, 58671L, 58086L, 57856L, 57793L, 57127L, 56910L,
56508L, 56506L, 56466L, 56378L, 56343L, 56334L, 56314L, 56169L,
55864L, 55858L)), .Names = c("screen_name", "degree.in", "friends_count"
), class = "data.frame", row.names = c(NA, -100L))
示例数据包含多个 degree.in
为零的条目。零的对数是-Inf
,有时表示为NA
。在任何情况下,它在图中都不是一个有意义的值。如果您想以对数刻度表示,我建议您确保所有数据点都具有正值。
您可以尝试绘制数据的相应子集,例如,
the.table_pos <- the.table[the.table$degree.in > 0,]