Преимущества CLI PHP?

Вы можете добавить alpha = 0.5 к своему выражению geom_bar(), чтобы сделать столбики прозрачными. Это позволит увидеть оба бара. Добавление этого оператора alpha и ничего больше не даст того, что вы ищете, чтобы сделать видимыми обе накладные полосы. Цвета, однако, затрудняют просмотр двух разных полос.

enter image description here

Другой (и, возможно, лучший) вариант - изменить порядок создания графика. Если я правильно помню, ggplot построит столбцы в алфавитном или числовом или факторном порядке. Здесь ваши значения expression равны c("Down", "Up"), а сначала отображается "Down". Если вы заставите "Up" быть нанесенным в первую очередь, вы также можете решить эту проблему.

library(dplyr)
library(ggplot2)

dat <- 
  read.table(text = "condition hours expression freq_genes
1      tofde     9         up         27
2      tofde    12         up         92
3      tofde    15         up        628
17     tofde     9       down          0
18     tofde    12       down          1
19     tofde    15       down          0
33      tofp     9         up       2462
34      tofp    12         up        786
35      tofp    15         up        298
49      tofp     9       down        651
50      tofp    12       down        982
51      tofp    15       down       1034
65       tos     0         up         27
66       tos     3         up        123
67       tos     6         up        752
81       tos     0       down          1
82       tos     3       down         98
83       tos     6       down        594") %>%
  mutate(expression2 = ifelse(expression == "up", 1, 2))

dat %>%
ggplot(aes(x = hours, y = freq_genes, group = condition, 
           fill = factor(expression2, labels=c("Up", "Down")))) +
  labs(fill="Expression") + 
  geom_bar(stat = "identity", position = "dodge", width = 2.5, alpha = 0.5) + 
  scale_fill_manual(values=c("#9ecae1", "#3182bd")) + 
  xlab("Time (Hours)") + 
  scale_x_continuous(breaks = seq(min(dat$freq_genes), 
                                  max(dat$freq_genes),
                                  by = 3)) + 
  ylab("Gene Frequency") + 
  facet_grid(. ~ condition, scales = "free") + 
  theme_bw() + 
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        legend.position = "bottom", 
        axis.text.x = element_text(angle = 90))

Здесь я создал новый столбец под названием expression2, который является просто числовой версией expression. Я изменил переменную fill в aes(), чтобы она соответствовала этим новым меткам. Я оставил цвета в scale_fill_manual() так же, как в вашем первоначальном утверждении, и сохранил значение alpha. «Вниз» наносится поверх «Вверх», но, сохраняя одинаковые цвета со значением alpha, обе полосы легче увидеть. Вы можете поиграть с легендой, чтобы отобразить «Вниз» перед «Вверх», если это необходимо.

enter image description here

Обратите внимание, что предоставление машиночитаемых данных имеет большое значение, позволяя другим помочь вам. Попробуйте использовать dput() для вывода ваших данных в следующий раз, а не вставлять их. Также обратите внимание, что вы можете «связать» вместе ggplot() операторы с +. Это делает код намного компактнее и легче для чтения.

5
задан 18 December 2008 в 01:33
поделиться

6 ответов

Одно использование было бы как задача планового техобслуживания, которая связана с веб-приложением. Вы сможете пользоваться библиотеками и функциональностью из веб-приложения.

Я предполагаю, что другое преимущество - то, что, если Вы знакомы с php веб-разработкой, затем вырубая быстрый скрипт CLI в php, может быть быстрый способ сделать что-то быстро.

9
ответ дан 18 December 2019 в 09:10
поделиться

Мы используем CLI PHP для задач крона как посылание электронных писем, закрытие старых обсуждений и почтовых очередей отсылки через веб-серверы. Можно также использовать его для одноразовых проектов как парсинг плоского текстового файла прямо в базу данных. Это не что-то, что Вы хотите быть видимой сетью. Эти задачи имеют преимущество совместного использования библиотек, которые Вы создали для своего веб-сайта, такого как электронные письма отправки и доступ к базе данных.

6
ответ дан 18 December 2019 в 09:10
поделиться

Первой вещью, которая приходит на ум, является приложение PHP, которое Вы могли легко представить как демон в сочетании с планировщиком задач, чтобы постоянно сделать определенные обновления, потому что Вы можете/, хотят зависеть от пользовательского действия для инициирования выполнения приложения - но Вам действительно не нужен интерактивный CLI для этого вида материала, который является Вами, мог просто использовать доступный инструмент планирования задач через что-то другое, чем CLI и позволить ему сделать всю грязную работу.

Основной причиной была бы ГРУША, и я думаю, что это - когда PHP начинает становиться действительно интересным. Это - необходимость для симфонии, но можно действительно видеть, что он помогает уже автоматизировать работу с языком знакомый с - никакая потребность в изучении Python, жемчуга, и т.д. и это, плюс который ГРУШЕВЫЕ сценарии не должны находиться в cgi репозитории (некоторые общие хосты очень строги).

0
ответ дан 18 December 2019 в 09:10
поделиться

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

В большинстве таких случаев VBScript или Powerscript, вероятно, по крайней мере, как подходящие.

0
ответ дан 18 December 2019 в 09:10
поделиться

Расширение проекта, доступного только для Интернета, до командная строка;

Посмотрите, как drush расширяет drupal .

0
ответ дан 18 December 2019 в 09:10
поделиться

Лучший язык сценариев для работы - почти всегда тот, который вы знаете лучше всего. Так что, если вы знаете PHP лучше, чем VBScript, это будет вашим самым большим преимуществом. Я написал ряд утилит командной строки и сценариев обслуживания, которые многие другие люди, вероятно, написали бы на PERL, BASH или даже на Python, но я просто не знаю эти языки почти так же хорошо, как PHP.

1
ответ дан 18 December 2019 в 09:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: