option ‘extrafont::loadfonts(device=“win”)’

First graph

data = read.csv("C:/Users/rotemh.WISMAIN/Google Drive/@מגדל השן/vesicles/@78/@78_gd1.csv", sep = ",")

xlab = "Size (nm)"
ylab = "Intensity (%)"
  pp = plot_ly(data
               ,x = data$X.Intensity
               ,y = data$mean
               ,type = 'scatter'
               ,mode = 'lines'
               ,error_y = list(value = data$sd, opacity = 0.4)
               )%>% 
    layout( pp
              ,xaxis = list(
                 title = xlab
                ,zeroline = F
                ,showline = F
                ,type = "log"
                )
              ,yaxis = list(
                 title = ylab
                ,zeroline = F
                ,showline = F)
              )
  pp
  pp = ggplot(data, aes(x = data$X.Intensity, y = data$mean)) + 
    geom_line(size = 3, color = "blue", alpha = 0.6) + 
    scale_x_log10(limits = c(5, 8000)) +
    annotation_logticks(base = 5, sides = "b") + 
    xlab(xlab) +
    ylab(ylab) + 
    theme(panel.background = element_blank())+
    geom_linerange(aes(ymin = data$mean - data$sd, ymax = data$mean + data$sd)
                   ,size = 1, color = "blue", alpha = 0.4) + 
    theme( axis.title = element_text(size = 14)
          ,axis.text = element_text(size = 12))
pp

Secomd graph

simplex = read.xlsx("C:/Users/rotemh.WISMAIN/Google Drive/@מגדל השן/vesicles/@78/simplex.xlsx",1)
coli = read.xlsx("C:/Users/rotemh.WISMAIN/Google Drive/@מגדל השן/vesicles/@78/e_coli.xlsx",1)
tempSort = sort(coli$count, decreasing = T, index.return = T)$ix
coli = coli[tempSort,]
coli$mistake = abs(coli$sub_best_match)
tempSort = sort(simplex$count, decreasing = T, index.return = T)$ix
simplex = simplex[tempSort,]
simplex$mistake = abs(simplex$sub_best_match)
num2show = 10
bp = plot_ly(coli ,width = 1000, height = 1000)  %>%
  add_trace(  x = droplevels(simplex$description[1:num2show])
              , y = simplex$count[1:num2show]
              , name = "<i>B. simplex</i>"
              , size = simplex$mistake[1:num2show]
              , type = "bar"
              
  ) %>%
  add_trace(  x = droplevels(coli$description[1:num2show])
            , y = coli$count[1:num2show]
            , name = "<i>E. coli</i>"
            , size = coli$mistake[1:num2show]
            , type = "bar"
            ) %>%
  # add_annotations(x = droplevels(coli$description[1:num2show])
  #                 , y = coli$count[1:num2show]
  #                 , text = droplevels(coli$description[1:num2show])) %>%
  layout(  title = "Top 10 hits for <i>E. coli</i> and <i>B. simplex</i>"
         , margin = list(r = 10, t = 50, b = 350, l = 100)
         , yaxis = list(title = "Hits (count)", type = "log")
         , xaxis = list(tickangle = 90, categoryorder = "array"
                        ,categoryarray = c(coli$description[1:num2show], simplex$description[1:num2show])
                        ,zeroline = F
                        ,showline = F)
         , font = list(size = 22, family = "Arial", color = "black")
         , legend = list(x = 0.85, y = 1)
         )
  
bp
simplex[,1:4]
coli[,1:4]
paste0(substr(coli$description[1:num2show],1,30),"...")
 [1] "transfer-messenger  RNA..."        "RNase P%2C M1 RNA component..."    "RNA polymerase%2C alpha subuni..."
 [4] "phosphoglycerate kinase..."        "sulfite reductase%2C alpha sub..." "putative L-xylulose 5-phosphat..."
 [7] "cryptic prophage Qin/Kim..."       "F1 sector of membrane-bound AT..." "Bifunctional aspartokinase/hom..."
[10] "beta-D-galactosidase..."          
LS0tDQp0aXRsZTogImdyYXBocyBmb3IgQDc4IHByZXNlbnRhdGlvbnMiDQpBdXRob3I6ICJSb3RlbSBIYWRhciINCmRhdGU6ICI0dGggT2N0b2JlciAyMDE4Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0Kb3B0aW9uICdleHRyYWZvbnQ6OmxvYWRmb250cyhkZXZpY2U9IndpbiIpJw0KDQpgYGB7ciwgbWVzc2FnZSA9IEYsIGVjaG8gPSBGLCB3YXJuaW5nID0gRn0NCmxpYnJhcnkoInhsc3giKQ0KbGlicmFyeSgicGxvdGx5IikNCmBgYA0KDQojIyBGaXJzdCBncmFwaA0KYGBge3J9DQpkYXRhID0gcmVhZC5jc3YoIkM6L1VzZXJzL3JvdGVtaC5XSVNNQUlOL0dvb2dsZSBEcml2ZS9A157XkteT15wg15TXqdefL3Zlc2ljbGVzL0A3OC9ANzhfZ2QxLmNzdiIsIHNlcCA9ICIsIikNCg0KeGxhYiA9ICJTaXplIChubSkiDQp5bGFiID0gIkludGVuc2l0eSAoJSkiDQogIHBwID0gcGxvdF9seShkYXRhDQogICAgICAgICAgICAgICAseCA9IGRhdGEkWC5JbnRlbnNpdHkNCiAgICAgICAgICAgICAgICx5ID0gZGF0YSRtZWFuDQogICAgICAgICAgICAgICAsdHlwZSA9ICdzY2F0dGVyJw0KICAgICAgICAgICAgICAgLG1vZGUgPSAnbGluZXMnDQogICAgICAgICAgICAgICAsZXJyb3JfeSA9IGxpc3QodmFsdWUgPSBkYXRhJHNkLCBvcGFjaXR5ID0gMC40KQ0KICAgICAgICAgICAgICAgKSU+JSANCiAgICBsYXlvdXQoIHBwDQogICAgICAgICAgICAgICx4YXhpcyA9IGxpc3QoDQogICAgICAgICAgICAgICAgIHRpdGxlID0geGxhYg0KICAgICAgICAgICAgICAgICx6ZXJvbGluZSA9IEYNCiAgICAgICAgICAgICAgICAsc2hvd2xpbmUgPSBGDQogICAgICAgICAgICAgICAgLHR5cGUgPSAibG9nIg0KICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgLHlheGlzID0gbGlzdCgNCiAgICAgICAgICAgICAgICAgdGl0bGUgPSB5bGFiDQogICAgICAgICAgICAgICAgLHplcm9saW5lID0gRg0KICAgICAgICAgICAgICAgICxzaG93bGluZSA9IEYpDQogICAgICAgICAgICAgICkNCiAgcHANCmBgYA0KICANCmBgYHtyfQ0KDQoNCg0KICBwcCA9IGdncGxvdChkYXRhLCBhZXMoeCA9IGRhdGEkWC5JbnRlbnNpdHksIHkgPSBkYXRhJG1lYW4pKSArIA0KICAgIGdlb21fbGluZShzaXplID0gMywgY29sb3IgPSAiYmx1ZSIsIGFscGhhID0gMC42KSArIA0KICAgIHNjYWxlX3hfbG9nMTAobGltaXRzID0gYyg1LCA4MDAwKSkgKw0KICAgIGFubm90YXRpb25fbG9ndGlja3MoYmFzZSA9IDUsIHNpZGVzID0gImIiKSArIA0KICAgIHhsYWIoeGxhYikgKw0KICAgIHlsYWIoeWxhYikgKyANCiAgICB0aGVtZShwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpKSsNCiAgICBnZW9tX2xpbmVyYW5nZShhZXMoeW1pbiA9IGRhdGEkbWVhbiAtIGRhdGEkc2QsIHltYXggPSBkYXRhJG1lYW4gKyBkYXRhJHNkKQ0KICAgICAgICAgICAgICAgICAgICxzaXplID0gMSwgY29sb3IgPSAiYmx1ZSIsIGFscGhhID0gMC40KSArIA0KICAgIHRoZW1lKCBheGlzLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCkNCiAgICAgICAgICAsYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMikpDQpwcA0KYGBgDQoNCg0KIyMgU2Vjb21kIGdyYXBoDQpgYGB7cn0NCnNpbXBsZXggPSByZWFkLnhsc3goIkM6L1VzZXJzL3JvdGVtaC5XSVNNQUlOL0dvb2dsZSBEcml2ZS9A157XkteT15wg15TXqdefL3Zlc2ljbGVzL0A3OC9zaW1wbGV4Lnhsc3giLDEpDQpjb2xpID0gcmVhZC54bHN4KCJDOi9Vc2Vycy9yb3RlbWguV0lTTUFJTi9Hb29nbGUgRHJpdmUvQNee15LXk9ecINeU16nXny92ZXNpY2xlcy9ANzgvZV9jb2xpLnhsc3giLDEpDQp0ZW1wU29ydCA9IHNvcnQoY29saSRjb3VudCwgZGVjcmVhc2luZyA9IFQsIGluZGV4LnJldHVybiA9IFQpJGl4DQpjb2xpID0gY29saVt0ZW1wU29ydCxdDQpjb2xpJG1pc3Rha2UgPSBhYnMoY29saSRzdWJfYmVzdF9tYXRjaCkNCnRlbXBTb3J0ID0gc29ydChzaW1wbGV4JGNvdW50LCBkZWNyZWFzaW5nID0gVCwgaW5kZXgucmV0dXJuID0gVCkkaXgNCnNpbXBsZXggPSBzaW1wbGV4W3RlbXBTb3J0LF0NCnNpbXBsZXgkbWlzdGFrZSA9IGFicyhzaW1wbGV4JHN1Yl9iZXN0X21hdGNoKQ0KbnVtMnNob3cgPSAxMA0KYGBgDQoNCmBgYHtyfQ0KYnAgPSBwbG90X2x5KGNvbGkgLHdpZHRoID0gMTAwMCwgaGVpZ2h0ID0gMTAwMCkgICU+JQ0KICBhZGRfdHJhY2UoICB4ID0gZHJvcGxldmVscyhzaW1wbGV4JGRlc2NyaXB0aW9uWzE6bnVtMnNob3ddKQ0KICAgICAgICAgICAgICAsIHkgPSBzaW1wbGV4JGNvdW50WzE6bnVtMnNob3ddDQogICAgICAgICAgICAgICwgbmFtZSA9ICI8aT5CLiBzaW1wbGV4PC9pPiINCiAgICAgICAgICAgICAgLCBzaXplID0gc2ltcGxleCRtaXN0YWtlWzE6bnVtMnNob3ddDQogICAgICAgICAgICAgICwgdHlwZSA9ICJiYXIiDQogICAgICAgICAgICAgIA0KICApICU+JQ0KICBhZGRfdHJhY2UoICB4ID0gZHJvcGxldmVscyhjb2xpJGRlc2NyaXB0aW9uWzE6bnVtMnNob3ddKQ0KICAgICAgICAgICAgLCB5ID0gY29saSRjb3VudFsxOm51bTJzaG93XQ0KICAgICAgICAgICAgLCBuYW1lID0gIjxpPkUuIGNvbGk8L2k+Ig0KICAgICAgICAgICAgLCBzaXplID0gY29saSRtaXN0YWtlWzE6bnVtMnNob3ddDQogICAgICAgICAgICAsIHR5cGUgPSAiYmFyIg0KICAgICAgICAgICAgKSAlPiUNCiAgIyBhZGRfYW5ub3RhdGlvbnMoeCA9IGRyb3BsZXZlbHMoY29saSRkZXNjcmlwdGlvblsxOm51bTJzaG93XSkNCiAgIyAgICAgICAgICAgICAgICAgLCB5ID0gY29saSRjb3VudFsxOm51bTJzaG93XQ0KICAjICAgICAgICAgICAgICAgICAsIHRleHQgPSBkcm9wbGV2ZWxzKGNvbGkkZGVzY3JpcHRpb25bMTpudW0yc2hvd10pKSAlPiUNCiAgbGF5b3V0KCAgdGl0bGUgPSAiVG9wIDEwIGhpdHMgZm9yIDxpPkUuIGNvbGk8L2k+IGFuZCA8aT5CLiBzaW1wbGV4PC9pPiINCiAgICAgICAgICwgbWFyZ2luID0gbGlzdChyID0gMTAsIHQgPSA1MCwgYiA9IDM1MCwgbCA9IDEwMCkNCiAgICAgICAgICwgeWF4aXMgPSBsaXN0KHRpdGxlID0gIkhpdHMgKGNvdW50KSIsIHR5cGUgPSAibG9nIikNCiAgICAgICAgICwgeGF4aXMgPSBsaXN0KHRpY2thbmdsZSA9IDkwLCBjYXRlZ29yeW9yZGVyID0gImFycmF5Ig0KICAgICAgICAgICAgICAgICAgICAgICAgLGNhdGVnb3J5YXJyYXkgPSBjKGNvbGkkZGVzY3JpcHRpb25bMTpudW0yc2hvd10sIHNpbXBsZXgkZGVzY3JpcHRpb25bMTpudW0yc2hvd10pDQogICAgICAgICAgICAgICAgICAgICAgICAsemVyb2xpbmUgPSBGDQogICAgICAgICAgICAgICAgICAgICAgICAsc2hvd2xpbmUgPSBGKQ0KICAgICAgICAgLCBmb250ID0gbGlzdChzaXplID0gMjIsIGZhbWlseSA9ICJBcmlhbCIsIGNvbG9yID0gImJsYWNrIikNCiAgICAgICAgICwgbGVnZW5kID0gbGlzdCh4ID0gMC44NSwgeSA9IDEpDQogICAgICAgICApDQogIA0KYnANCmBgYA0KYGBge3J9DQpzaW1wbGV4WywxOjRdDQpjb2xpWywxOjRdDQpgYGANCmBgYHtyfQ0KcGFzdGUwKHN1YnN0cihjb2xpJGRlc2NyaXB0aW9uWzE6bnVtMnNob3ddLDEsMzApLCIuLi4iKQ0KDQpgYGANCg0K