如何使xlab与其在R中的表示(条形图)一致

如何使xlab与其在R中的表示(条形图)一致,r,bar-chart,R,Bar Chart,我有一个.csv文件,其中有城市。这样的文件看起来像: city_name madrid barcelona barcelona madrid sevilla sevilla madrid sevilla barcelona palma madrid leon sevilla cadiz sevilla cadiz barcelona leon cadiz cadiz barcelona madrid leon leon leon madrid madrid sevilla barcelona

我有一个
.csv
文件,其中有城市。这样的文件看起来像:

city_name
madrid
barcelona
barcelona
madrid
sevilla
sevilla
madrid
sevilla
barcelona
palma
madrid
leon
sevilla
cadiz
sevilla
cadiz
barcelona
leon
cadiz
cadiz
barcelona
madrid
leon
leon
leon
madrid
madrid
sevilla
barcelona
palma
leon
cadiz
palma
我想表示一个
条形图
。到目前为止,我得到的是:

但正如您可能注意到的,
leon
不会出现3次,而是出现6次(这样的城市是
palma
)。条形图是正确的,但是
xlab
(x轴)与其表示的不一致

我的R-Shining代码:

库(闪亮)

ui我认为,如果您按照以下方式编辑代码,它可能适合您:

output$cities <- renderPlot({
    summary <- as.data.frame(table(c(cities)))
    barplot(summary$Freq, names = summary$Var1)
  })
output$cities只需删除names参数,并将
barplot
默认设置为
table
output的names属性。
table
按字母顺序对值进行排序,
unique()
按数据中显示的顺序返回不同的值列表

cities = c("madrid", "barcelona", "barcelona", "madrid", "sevilla", "sevilla", "madrid", 
           "sevilla", "barcelona", "palma", "madrid", "leon", "sevilla", "cadiz", "sevilla", 
           "cadiz", "barcelona", "leon", "cadiz", "cadiz", "barcelona", "madrid", "leon", 
           "leon", "leon", "madrid", "madrid", "sevilla", "barcelona", "palma", "leon", "cadiz", "palma")

table(cities)
# cities
# barcelona     cadiz      leon    madrid     palma   sevilla 
#         6         5         6         7         3         6

unique(cities)
# [1] "madrid"    "barcelona" "sevilla"   "palma"     "leon"      "cadiz"  

barplot(table(cities))

将第19行替换为
条形图(表(城市))
。您使用的是
c()
函数,该函数基本上检索整数向量,而不管
names
参数如何,R实际上都表示整数向量

library(shiny)

ui <- fluidPage(
  plotOutput("cities")
)

server <- function(input, output) {
  wd.datapath = paste0(getwd(), "/assets")
  wd.init = getwd();
  setwd(wd.datapath)

  d.in = read.csv("cities.csv", header = TRUE)

  cities = d.in$city_name

  unique_cities = unique(cities)
  print(c(cities))
  output$cities <- renderPlot({
    barplot(table(cities))
  })
}

shinyApp(ui = ui, server = server)
库(闪亮)

通过删除
名称
参数,ui不起作用,但在第19行中,我调用了
条形图(表(c(城市))
,而不是
条形图(表(城市))
。[没有
c()
函数]。谢谢。嗯……这里有或没有
c()
的精确代码应该生成相同的精确图形。在这里,城市应该与数据框列d相匹配,单位为$city\u name。在唯一值上使用
名称
,会生成先前不正确的图形。我邀请您在空的R环境中运行此代码以进行确认。将不起作用
xlab(x轴)具有由
c(城市)
生成的数值。我希望x轴包含每个城市的名称。我已经解决了,请参考我自己的答案。谢谢。这与我建议的避免使用名称arg的答案有什么不同?