#Source: https://t.me/rstudioprogr
library(ggplot2)
library(reshape)
library(ggrepel)
library(ggbreak) 

data_shares <- data.frame(Ticker = c("IVAT", "NLMK", "SBER", "MTSS", "WUSH", "TRNFP"), 
                          Current_Price = c(260, 169.36, 319.75, 281.6, 269.14, 1515), 
                          Target_Price = c(350, 216.75, 360, 324.2, 355, 1600))
data_shares2 <- melt(data_shares, id.vars = "Ticker")
data_shares2 <- data_shares2[order(data_shares2$Ticker), ]
head(data_shares2)
##    Ticker      variable  value
## 1    IVAT Current_Price 260.00
## 7    IVAT  Target_Price 350.00
## 4    MTSS Current_Price 281.60
## 10   MTSS  Target_Price 324.20
## 2    NLMK Current_Price 169.36
## 8    NLMK  Target_Price 216.75
ggplot(data_shares2, aes(x = value, y = Ticker)) + geom_point(aes(color = variable), size = 3) +
  geom_line(arrow = arrow(length=unit(0.30,"cm"), ends="last", type = "closed")) +
  theme_minimal() + xlab("") + ylab("Тикеры компаний") +
  ggtitle("Отражение целевой и текущей цены по компаниям") + 
  scale_x_break(c(360, 1500)) + 
  geom_text(aes(label = round(value,0)), hjust=0.5, vjust=-1) + 
  scale_color_manual(labels = c("Текущая", "Целевая"), 
                     values = c("darkblue", "lightblue")) + labs(color = "Цена", caption = "Telegram: @rstudioprogr") + 
  theme(panel.grid.major.x = element_blank(),
    panel.grid.minor.x = element_blank(),
    panel.grid.major.y = element_blank(),
    panel.grid.minor.y = element_blank(), 
    axis.text.x = element_blank(), axis.ticks.x = element_blank(), 
    legend.position = "bottom", 
    legend.text = element_text(size = 13), 
    legend.title = element_text(size = 13), 
    axis.title.y = element_text(size = 13), 
    axis.text.y = element_text(size = 13), 
    title = element_text(size = 13)) + 
  annotate("label", x=(260+350)/2, y='IVAT', label= "+34,6%", color = "#6D8C00") + 
  annotate("label", x=(169.36+216.75)/2, y='NLMK', label= "+27,9%", color = "#6D8C00") + 
  annotate("label", x=(319.75+360)/2, y='SBER', label= "+12,6%", color = "#6D8C00") + 
  annotate("label", x=(281.6+324.2)/2, y='MTSS', label= "+15,1%", color = "#6D8C00") +
  annotate("label", x=(269.14+355)/2, y='WUSH', label= "+31,9%", color = "#6D8C00") +
  annotate("label", x=(1515+1600)/2, y='TRNFP', label= "+5,6%", color = "#6D8C00")