在Rmarkdown中生成flexdashboard ,我想导入一个excel表并使用selectInput语句从2,3,4,5列(product1,product2,product3,product4)中选择任意一个excel工作表并绘制column1(Day)与selectInput语句(product1或product2或product3或product4)中所选列的散点图。有人可以帮我解决R代码吗?enter image description here
---标题:“一般情节” 作者:“Aravind”日期:“2018年4月1日”输出: flexdashboard :: flex_dashboard: 方向:列
运行时:闪亮
{r, echo=FALSE} library(readxl) library(flexdashboard) library(shiny) library(plotly) data_to_plot<-read_excel("random.xlsx")
输入{.sidebar}{r Global Filter Panel, echo=FALSE} selectInput("Product","Activity",choices=c('product1','product2','product3','product4'),selected=NULL,width = '400px')
在此选项卡下将显示图表{.tabsets .tabset-fade}
Chart``` {r echo = FALSE,message = FALSE}
renderPlotly(
P&LT; -plot_ly( data_to_plot中,x =〜产品,Y =〜日 color =“red”, 类型= “散射”)%&GT;% layout(title =“使用R plotly散布图”, x轴=列表(标题= “日”),Y轴=列表(标题= “产品”), 图例=列表(x = 1,Y = 0.5))%&GT;% p)```
答案 0 :(得分:1)
你的问题中有一些混乱的格式,你可能想要修复,但答案并不太难。
您使用了
Product
因此,inputID = input$Product
的输入选择。在shiny / flexdashboard中,这将创建一个变量plot_ly()
。
然后使用plot_ly( data_to_plot,x=~Product,y=~Day....
和
Product
您可以使用plot_ly( data_to_plot,x=~input$Product,y=~Day....
变量,除非它是数据框中的一列,否则不会将其分配到任何位置。相反,试试这个,
input$Product
因此,使用selectInput()
从闪亮的import numpy as np
import pandas as pd
dates = pd.DataFrame(pd.date_range('2000-01-01', periods = 15), columns = ['date'])
d = pd.DataFrame(np.random.randint(1, 5, (15, 3)), columns = list('abc'))
d = pd.concat([dates, d], axis = 1)
writer = pd.ExcelWriter('dates_border.xlsx',
#OR: 'c:\\users\\USER_NAME\\desktop\\dates_border.xlsx',
datetime_format='yyyy.mm')
d.to_excel(writer, 'Sheet1', index = False)
worksheet = writer.sheets['Sheet1']
workbook = writer.book
# header: I LOSE THE THICK BOTTOM BORDER OF THE HEADER
header_format = workbook.add_format({'bottom': 2, 'bg_color': '#F9DA04'})
for col_num, value in enumerate(d.columns.values):
worksheet.write(0, col_num, value, header_format)
# data with bottom borders
format1 = workbook.add_format()
format1.set_bottom(7)
worksheet.conditional_format(1, 0, d.shape[0], d.shape[1] -1,
{'type': 'cell',
'criteria': '<>',
'value': '""',
'format': format1})
writer.save()
中获取值。
希望能让你前进。如果您已经阅读了有关flexdashboards的一些教程,我相信这对您来说会很熟悉。