R - изменить размер меток оси для corpplot - PullRequest
10 голосов
/ 19 марта 2011

Я использую следующее с corrplo t:

require("corrplot") ## needs the corrplot package
corrplot(cor(lpp_axis1, lpp_axis2), method=c("number"), bg = "grey10",
         addgrid.col = "gray50", tl.offset = 2, tl.cex=2,
         tl.col = "black", 
         col = colorRampPalette(c("yellow","green","navyblue"))(100))

Это создано с помощью файла CSV здесь .

График в порядке, и я могу настроить ярлыки cl, сколько захочу. Я попытался настроить метки на осях X и Y без каких-либо последствий. Я смотрел на изменение мар - но я не нашел способ. Мне не удалось использовать cex.label для изменения размера.

Вопрос - как я могу сделать текст, появляющийся для corrplot (не cl, и не в сетке) больше?

Две оси - это следующие фреймы данных:

lpp_axis1 <- data.frame("Compile Source Code" = Q3A.1, "View Source Code" = Q3A.2, "Change Source Code" = Q3A.3, "Write Documentation" = Q3A.8, "File Bug Reports"= Q3B.3, "Ask Questions" = Q3B.5, "Provide Answers" = Q3B.6, "Overall Participation" = Q3a3bConsolidated)

lpp_axis2 <- data.frame("Identification" = Q1,"Overall Learning" = Q6Consolidated,  "Learning Programming" = Q6.1,  "Learning about Computers" = Q6.2, "Learning Teamwork" =  Q6.3)

Выход из

str(lpp_axis1)

это

> str(lpp_axis1)
'data.frame':   4603 obs. of  8 variables:
 $ Compile.Source.Code  : int  4 2 3 2 2 2 3 2 2 0 ...
 $ View.Source.Code     : int  4 2 1 1 2 2 3 1 1 0 ...
 $ Change.Source.Code   : int  4 1 0 1 2 1 2 1 1 0 ...
 $ Write.Documentation  : int  4 1 2 2 3 0 3 0 1 0 ...
 $ File.Bug.Reports     : int  4 4 1 2 2 0 2 0 0 0 ...
 $ Ask.Questions        : int  4 4 2 4 2 1 2 1 3 0 ...
 $ Provide.Answers      : int  2 4 1 4 4 0 3 1 3 0 ...
 $ Overall.Participation: int  49 26 14 32 31 8 27 10 15 0 ...

Выход из

packageDescription("corrplot")

указывает:

Package: corrplot
Type: Package
Title: visualization of a correlation matrix
Version: 0.30
Date: 2010-05-30
Author: Taiyun Wei
Suggests: seriation, cairoDevice, Cairo,
Maintainer: Taiyun Wei <weitaiyun@gmail.com>
Description: The corrplot package is a graphical display of a
        correlation matrix, confidence interval. It also contains some
        algorithms to do matrix reordering.
License: GPL-2 | GPL-3
LazyLoad: yes
URL: http://corrplot.r-forge.r-project.org
Repository: CRAN
Repository/R-Forge/Project: corrplot
Repository/R-Forge/Revision: 45
Date/Publication: 2010-05-31 07:44:14
Packaged: 2010-05-30 20:39:16 UTC; rforge
Built: R 2.11.1; ; 2011-03-19 00:22:49 UTC; unix

-- File: /home/user/R/x86_64-pc-linux-gnu-library/2.11/corrplot/Meta/package.rds 
> 

Сопровождающий corrplot отписался с альтернативным доступным corrplot.r здесь

Используя этот код и пример кода ниже, размер текста приемлем. Однако попытки увеличить его также приводят к тем же эффектам.

source("http://misterdavis.org/R_info/corrplot.r")
corrplot(cor(lpp_axis1, lpp_axis2), addn=T,
         addgrid.col = "gray50", tl.cex=2, assign.col="min2max",
         tl.col = "black", cl.ratio=0.4, addcolor="no",
         col = colorRampPalette(c("yellow","green","blue"))(100))

Используя более раннюю версию доступных корреляционных кругов здесь , можно настроить текст в соответствии с желанием сердца. (Хотя в графике отсутствуют некоторые функции более позднего, более усовершенствованного пакета corrplot.) Cex можно использовать для cex. Я могу попытаться настроить два, чтобы придумать счастливую среду, как позволяет время.

Используя более старый скрипт корреляционных окружностей, следующий код создает достаточно большие метки осей X и Y:

circle.corr(cor(lpp_axis1, lpp_axis2), bg = "gray50",   col = colorRampPalette(c("navyblue","white", "red"))(100), cex=1.5)

Ответы [ 3 ]

11 голосов
/ 19 марта 2011

Обновление2

Фактически реальный воспроизводимый пример теперь, благодаря предоставленному коду и данным:

d1 <- read.csv(url("http://misterdavis.org/r_wiki/r_results_1231_2010"))
lpp_axis1 <- with(d1, data.frame("Compile Source Code" = Q3A.1,
                                 "View Source Code" = Q3A.2,
                                 "Change Source Code" = Q3A.3, 
                                 "Write Documentation" = Q3A.8, 
                                 "File Bug Reports"= Q3B.3,
                                 "Ask Questions" = Q3B.5,
                                 "Provide Answers" = Q3B.6,
                                 "Overall Participation" = Q3a3bConsolidated))

lpp_axis2 <- with(d1, data.frame("Identification" = Q1,
                                 "Overall Learning" = Q6Consolidated,  
                                 "Learning Programming" = Q6.1,
                                 "Learning about Computers" = Q6.2, 
                                 "Learning Teamwork" =  Q6.3))

corrplot(cor(lpp_axis1, lpp_axis2), method=c("number"), bg = "grey10",
         addgrid.col = "gray50", tl.cex=1,
         tl.col = "black", 
         col = colorRampPalette(c("yellow","green","navyblue"))(100))
dev.new()
corrplot(cor(lpp_axis1, lpp_axis2), method=c("number"), bg = "grey10",
         addgrid.col = "gray50", tl.cex=2,
         tl.col = "black", 
         col = colorRampPalette(c("yellow","green","navyblue"))(100))

dev.new() позволяет вам иметь обана экране сразу для сравнения, не разбивая область построения на две панели.

Кажется, что tl.offset вызывает больше проблем, чем оно того стоит, поэтому я оставил это.Я включаю две цифры ниже:

С tl.cex = 1

corrplot with tl.cex = 1

С tl.cex = 2

corrplot with tl.cex = 2

Как видите, я не могу воспроизвести проблему, которую вы видите;tl.cex изменяет только размер меток оси.Обратите внимание, что это без использования tl.offset, но остальная часть кода печати совпадает с вашей.

Это то, что я получаю из packageDescription():

R> packageDescription("corrplot")
Package: corrplot
Type: Package
Title: visualization of a correlation matrix
Version: 0.30
Date: 2010-05-30
Author: Taiyun Wei
Suggests: seriation, cairoDevice, Cairo,
Maintainer: Taiyun Wei <weitaiyun@gmail.com>
Description: The corrplot package is a graphical display of a
        correlation matrix, confidence interval. It also contains some
        algorithms to do matrix reordering.
License: GPL-2 | GPL-3
LazyLoad: yes
URL: http://corrplot.r-forge.r-project.org
Repository: CRAN
Repository/R-Forge/Project: corrplot
Repository/R-Forge/Revision: 45
Date/Publication: 2010-05-31 07:44:14
Packaged: 2010-05-30 20:39:16 UTC; rforge
Built: R 2.13.0; ; 2011-04-01 12:33:21 UTC; unix

- Файл:/home/gavin/R/libs/corrplot/Meta/package.rds

Сравните его с тем, что есть в вашей системе, и попробуйте приведенный выше пример, чтобы мы выполняли точно такой же код для сравнения.


Исходный пример Вот воспроизводимый пример:

require(corrplot)
data(mtcars)
corr <- cor(mtcars)
corrplot(corr, method = "number", tl.cex = 2)

Обновление

Хорошо, теперь я вижу проблему.С tl.offset вы отодвигаете метки от графика корреляции дальше в поля.Кажется, это либо ошибка ошибки corrplot(), так как если вы не установите tl.offset, она масштабирует график корреляции для размещения меток.Единственное решение, которое я вижу, это вообще не устанавливать tl.offset или устанавливать его на меньшее значение. Вот крайний пример:

layout(matrix(1:2, ncol = 2))
corrplot(corr, method = "number", tl.cex = 2, tl.offset = 3)
corrplot(corr, method = "number", tl.cex = 2)
layout(1)

corrplot 4

You может улучшить положение вещей, изменив относительные размеры устройства печати - если на экране, увеличьте ширину или высоту (или оба) окна устройства печати, пока все метки не будут видны.Если это другое устройство (скажем, pdf() или png()), вам потребуется изменить размеры устройства при его создании.


Оригинал Какой[Воспроизводимый пример] дает:

mtcars correlation plot

Вам не ясно, в чем проблема с метками осей x и y, но corrplot() изменяет поля графика для размещения меток,Вы уже указали относительный размер этих меток осей x и y, установив аргумент tl.cex = 2.Если вы хотите, чтобы надписи были больше, увеличьте это значение:

corrplot(corr, method = "number", tl.cex = 4)

mtcars correlation plot 2

и, если вы хотите пометки меньшего размера, установите tl.cex на меньшее значение:

corrplot(corr, method = "number", tl.cex = 0.8)

mtcars correlation plot 3

Учитывая, что это единственные метки x и y на графике, это помогает?Если нет, то какие метки нужно изменить?

2 голосов
/ 20 марта 2011

Учитывая примеры, которые вы добавили, вам, возможно, придется увеличить размеры графика и установить внешние поля в соответствии с длиной ваших меток.

Текущий размер графика доступен с помощью par()$pin, а внешние поля с par()$omi.

Вы можете изменить размер графика и внешние поля, адаптировав следующий пример:

require("corrplot")         ## needs the corrplot package  
data(mtcars)  
  corr <- cor(mtcars)    
par(pin=c(7,7))              ##  (width, height) in inches    
par(omi=c(0,1,1,0.5))        ## (bottom, left, top, right)  in inches  
corrplot(corr, method="number", tl.cex = 2)

enter image description here


2 голосов
/ 19 марта 2011

Вы можете попробовать изменить размер шрифта текста с помощью пар. Я думаю, что размер по умолчанию составляет 12.
Добавление строки типа par( ps=14) перед corrplot должно увеличить размер текста.

...