ggplot2 bar chart binwidth не то же самое? [Дубликат]

Рассказ: почтальона просят вернуться домой домой и получить обложки (письма, документы, чеки, подарочные карты, приложения, любовью) с адресом, написанным на нем для доставки.

Предположим, что есть нет обложки и попросите человека повести домой домой и получить все вещи и доставить другому человеку почтальон может запутаться,

, так что лучше оберните его обложкой (в нашей истории это интерфейс), тогда он

Теперь почтальон должен получать и доставлять только обложки .. (он не беспокоился о том, что внутри обложки).

Создайте тип interface не действительный тип, но реализуется с фактическим типом.

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

Я приведу вам пример.

у вас есть интерфейс AirPlane, как показано ниже.

interface Airplane{
    parkPlane();
    servicePlane();
}

Предположим, что у вас есть методы в вашем классе контроллеров Planes, например

parkPlane(Airplane plane)

и

servicePlane(Airplane plane)

реализованы в вашей программе. Это не BREAK ваш код. Я имею в виду, что он не должен меняться, пока он принимает аргументы как AirPlane.

Поскольку он будет принимать любой самолет, несмотря на фактический тип, flyer, highflyr, fighter и т. Д. .

Кроме того, в коллекции:

List<Airplane> plane; // Возьмем все ваши самолеты.

Следующий пример очистит ваше понимание.


У вас есть истребитель, который его реализует, поэтому

public class Fighter implements Airplane {

    public void  parkPlane(){
        // Specific implementations for fighter plane to park
    }
    public void  servicePlane(){
        // Specific implementatoins for fighter plane to service.
    }
}

То же самое для HighFlyer и другой классы:

public class HighFlyer implements Airplane {

    public void  parkPlane(){
        // Specific implementations for HighFlyer plane to park
    }

    public void  servicePlane(){
        // specific implementatoins for HighFlyer plane to service.
    }
}

Теперь подумайте, что ваш контроллер классы, использующие AirPlane несколько раз,

Предположим, что ваш класс Controller - это ControlPlane, как показано ниже,

public Class ControlPlane{ 
 AirPlane plane;
 // so much method with AirPlane reference are used here...
}

здесь магия появляется как

, вы можете сделать свой новый AirPlane, и вы не меняете

код класса ControlPlane.

вы можете добавить экземпляр ..

JumboJetPlane // implementing AirPlane interface.
AirBus        // implementing AirPlane interface.

вы также можете удалить экземпляры ранее созданных типов.

8
задан Jaap 5 October 2015 в 07:18
поделиться

1 ответ

Установка width на небольшое значение и указание color дает мне желаемый результат с зазорами между всеми барами:

ggplot(df, aes(x = Day, y = Mean)) +
  geom_bar(stat = "identity", width = 0.1, color = "black") +
  theme_bw() +
  theme(axis.text = element_text(size = 12))

полученный график:


Если вы не хотите пробелов, используйте width = 1:

ggplot(df, aes(x = Day, y = Mean)) +
  geom_bar(stat = "identity", width = 1) +
  theme_bw(base_size = 12) 

полученный результат:

18
ответ дан Jaap 22 August 2018 в 11:26
поделиться
Другие вопросы по тегам:

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