Я хочу составить гистограмму из: числа криптовалют с заданной ценой.Я хотел, чтобы частота по оси Y была изменена с помощью ползунка bin: 1-50, потому что я использую 50 криптовалют с этим вызовом API.По оси абсцисс должны быть цены с такими интервалами, как: 1000000, 1100000, 1200000, 1300000 ... и т. Д., А также количество криптовалют в этих интервалах.Я делаю запрос в Coinmarket Open API и беру у JSON Total Supply вот так:
library(shiny)
library(jsonlite)
fetchjson <- fromJSON("https://api.coinmarketcap.com/v1/ticker/?limit=50")
# Define server logic required to draw a histogram
# Define server logic required to draw a histogram ----
server <- function(input, output) {
# Histogram of the Old Faithful Geyser Data ----
# with requested number of bins
# This expression that generates a histogram is wrapped in a call
# to renderPlot to indicate that:
#
# 1. It is "reactive" and therefore should be automatically
# re-executed when inputs (input$bins) change
# 2. Its output type is a plot
output$distPlot <- renderPlot({
x <- as.double( fetchjson$total_supply)
bins <- seq(as.integer(min(x)), .Machine$integer.max, by = 1000)
#barplot(table(fetchjson$total_supply))
hist(x, breaks = bins)
#col = "#75AADB", border = "white",
#main = "Number of currencies with some Total Supply"
})
}
Вот отсортированные данные (as.double, потому что jsonlite преобразует их в строки):
> sort(as.double(fetchjson$total_supply))
[1] 1000000 5214419 8437465 8798633 16562199 17371487 17437911 17453125
[9] 53252246 56869592 59117338 100000000 100000000 101028884 103143260 105961236
[17] 127276552 133248289 140245398 156756875 157911504 190799315 273685830 300343598
[25] 763306930 800460000 1000000000 1000000000 1000000000 1000000000 1006245120 1407000000
[33] 1500000000 2580109502 2671180000 2779530283 8999999999 10000000000 11041428664 12600000000
[41] 15172086051 31112483745 37679831499 86712634466 99000000000 99991792688 104443257863 116945854633
[49] 184066828814 280255193861
Проблема в том, что: когда я запускаю приложение, есть только слайдер Bins, но нет гистограммы, и я получаю сообщение об ошибке:
Предупреждение: Ошибка в hist.default: некоторые 'x' не учитываются;может быть, 'breaks' не охватывают диапазон 'x'
Я думаю, что что-то не так с определением ячеек, но я не знаю что.Я думал, что это не работает из-за двойного, поэтому я использовал целое число, и я сделал MAXINTEGERVALUE как предел."By =" для bin равно 1000, как тест, потому что я хотел показать такие данные, как min (x), +1000, +2000, +3000, +4000.Таким образом, это может показать частоту валют, которые имеют цены в эти периоды.Я не знаю, почему это не сработает.Пожалуйста, помогите
Есть также ui.R, где я определяю ползунок Bin, если это необходимо
#
# This is a Shiny web application. You can run the application by clicking
# the 'Run App' button above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#
# Define UI for application that draws a histogram
# Define UI for app that draws a histogram ----
ui <- fluidPage(
# App title ----
titlePanel("Hello Shiny!"),
# Sidebar layout with input and output definitions ----
sidebarLayout(
# Sidebar panel for inputs ----
sidebarPanel(
# Input: Slider for the number of bins ----
sliderInput(inputId = "bins",
label = "Number of bins:",
min = 1,
max = 50,
value = 30)
),
# Main panel for displaying outputs ----
mainPanel(
# Output: Histogram ----
plotOutput(outputId = "distPlot")
)
)
)