taucharts
taucharts copied to clipboard
Add list of to-dos with priority
Happy to help on this one. Do you have a prioritized list of to-dos?
TODOs
- [ ]
testthat
- [ ] date "stuff" (gosh I wish date stuff between R & javascript were so ugly). dates aren't really working
- [ ] composite charts (http://api.taucharts.com/basic/composite.html) right now only basic charts work. may need to re-write them to use the
COORDS…
andELEMENT…
format - [x] support scatterplot matrices (http://api.taucharts.com/advanced/splom.html) [this may work tho - see Rpubs at the end]
- [x] rewrite
tauCharts.normalize.min.css
and uncomment in yaml config so fonts look better again (they were killing Rmd html output) - [ ] facet guides (http://api.taucharts.com/basic/facet.html scroll down to "Simple way…")
- [x] other built-in color scales besides
manual
(like inmetricsgraphics
) - [x] figure out taucharts "plugins"
- [x] stacked bar chart
- [ ] find docs on parallel coordinate chart
- [ ] find docs on maps (they claim to have support now)
- [x] better detection of column/object types and auto-creation of scales for them
- [x] better/more/actual examples in documentation
- [ ] vignette
- [ ] CRAN!
We can break out each TODO as an issue for separate tracking but the master list can be kept here
great thanks. I'll get to work on basic factor
support even though not in the TODO, and then try to play some with the dates.
Hi! R htmlwidget is a great initiative! I'm developer of taucharts and happy to see this project started.
Just wanted to share with you our nearest project plans. Currently we are:
- re-working CSS to have good isolation and support different themes as well
- improve examples and documentation
Next plan is to rework and document legend and tooltip plugins since they were implemented on top of pure D3 before plugins concept was stabilized.
Parallel and geo coordinates are in beta now and have several bugs with resizing and ugly labels positioning. They are in queue to be fixed and documented.
Actually strategic goal for this year is to "squeeze out" full power of cartesian coordinates and avoid any new coordinate types for a while (like polar, pie charts etc).
Please don't hesitate to discuss, ask questions or post issues / pull requests to taucharts.
Thanks again! Vladimir Petriko
Thank you for the sweet javascript charting library! Super-helpful & consistent API for the core feature set. Def let us know if you need us to beta anything.
On Tue, Aug 4, 2015 at 5:50 AM, Petriko Vladimir [email protected] wrote:
Hi! R htmlwidget is a great initiative! I'm developer of taucharts and happy to see this project started.
Just wanted to share with you our nearest project plans. Currently we are:
- re-working CSS to have good isolation and support different themes as well
- improve examples and documentation
Next plan is to rework and document legend and tooltip plugins since they were implemented on top of pure D3 before plugins concept was stabilized.
Parallel and geo coordinates are in beta now and have several bugs with resizing and ugly labels positioning. They are in queue to be fixed and documented.
Actually strategic goal for this year is to "squeeze out" all power of cartesian coordinates and avoid any new coordinate types for a while (like polar, pie charts etc).
Please don't hesitate to discuss, ask questions or post issues / pull requests to taucharts. Thanks again!
Vladimir Petriko
— Reply to this email directly or view it on GitHub https://github.com/hrbrmstr/taucharts/issues/1#issuecomment-127548382.
Guess we can start checking some of this off. I checked off plugins even though I know there are some remaining.
@timelyportfolio I just made a dev
branch to avoid me adding things that may not work into master
. You should prbly fork that (I made a cpl changes after you got everything back to working)
Ok, thanks, sounds good.
I made a stable release (0.1.0) for master branch and update-merged dev branch. New Rpub (with working trendline!) is up as well.
Great. Have a pull now to add min
/max
to tau_guide_?
based on https://github.com/TargetProcess/tauCharts/issues/34 and #12. It is in my devel/axis_minmax
branch if you want to try it first. Fun to dig out the undocumented behavior :)
devtools::install_github("timelyportfolio/taucharts@devel/axis_minmax")
DF <-
structure(
list(
Ranking = structure(
1:5, .Label = c("Bottom", "Bellow Average",
"Average", "Above Average", "Top"), class = "factor"
), Prob = c(20L,
20L, 20L, 20L, 20L)/100
), .Names = c("Ranking", "Prob"), row.names = c(NA,-5L), class = "data.frame"
)
tauchart(DF) %>%
tau_bar(x="Ranking", y="Prob") %>%
tau_guide_y(tick_format="%", min = 0, max = 1)
If possible, would like to feature this as the htmlwidget of the week. Let me know if this causes any problems.
go forth and showcase! :grinning:
On Tue, Aug 4, 2015 at 3:41 PM, timelyportfolio [email protected] wrote:
If possible, would like to feature this as the htmlwidget of the week. Let me know if this causes any problems.
— Reply to this email directly or view it on GitHub https://github.com/hrbrmstr/taucharts/issues/1#issuecomment-127731500.
re: #12, aye, I think we're definitely full-on headed into "pry the details from the javascript files" vs "read the API docs" territory. good. times.
You may want to sync the dev
branch before doing too much more hacking.
- fixed bug in
tau_guide_gridlines
- reorganized code into grouped, separate files
- added examples to everything
- added a dataset (
cars_data
) - updated version number (
0.2.0.9000
)
cool package!
suggested to do item: provide an example of how to use taucharts with shiny
The package is so cool. Shiny example is more than welcome.
@benporter : I find an example from another issue and modify it a bit for an example. Here you go
# This is the server logic for a Shiny web application.
# You can find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com
#
library(shiny)
library(htmlwidgets)
library(taucharts)
shinyServer(function(input, output) {
scatter_dat <-
structure(
list(
team = c("d", "d", "d", "d", "l", "l", "l", "l",
"k", "k", "k", "k"), cycleTime = c(1L, 2L, 3L, 4L, 2L, 3L, 4L,
5L, 2L, 3L, 4L, 5L), effort = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L,
4L, 5L, 6L, 8L), count = c(1L, 5L, 8L, 3L, 1L, 5L, 8L, 3L, 1L,
5L, 8L, 3L), priority = c(
"low", "low", "medium", "high", "low",
"low", "medium", "high", "low", "low", "medium", "high"
)
), .Names = c("team",
"cycleTime", "effort", "count", "priority"), class = "data.frame", row.names = c(NA, 12L)
)
line_dat <-
structure(
list(
type = c(
"us", "us", "us", "us", "us", "us", "bug",
"bug", "bug", "bug", "bug"
), count = c(0L, 10L, 15L, 12L, 16L,
13L, 21L, 19L, 23L, 26L, 23L), date = c(
"12-2013", "01-2014",
"02-2014", "03-2014", "04-2014", "05-2014", "01-2014", "02-2014",
"03-2014", "04-2014", "05-2014"
)
), .Names = c("type", "count",
"date"), class = "data.frame", row.names = c(NA, 11L)
)
bar_dat <-
structure(
list(
team = c("d", "d", "d", "d", "l", "l", "l", "l",
"k", "k", "k", "k"), cycleTime = c(1L, 2L, 3L, 4L, 2L, 3L, 4L,
5L, 2L, 3L, 4L, 5L), effort = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L,
4L, 5L, 6L, 8L), count = c(1L, 5L, 8L, 3L, 1L, 5L, 8L, 3L, 1L,
5L, 8L, 3L), priority = c(
"low", "low", "medium", "high", "low",
"low", "medium", "high", "low", "low", "medium", "high"
)
), .Names = c("team",
"cycleTime", "effort", "count", "priority"), class = "data.frame", row.names = c(NA, 12L)
)
car_dat <-
structure(
list(
car = c(
"Toyota Prius+", "Volvo S60", "BMV X5",
"Infinity FX", "Mercedes Vito", "Peugeot 3008", "Subaru Forester",
"Lexus RX", "Bentley Continental"
), co2 = c(96L, 135L, 197L,
238L, 203L, 155L, 186L, 233L, 246L), hp = c(99L, 150L, 306L,
238L, 95L, 120L, 150L, 188L, 507L), euroEco = c(
"eco", "eco",
"non-eco", "non-eco", "non-eco", "non-eco", "non-eco", "non-eco",
"non-eco"
), power = c(
"low", "normal", "high", "high", "low",
"low", "normal", "normal", "high"
)
), .Names = c("car", "co2",
"hp", "euroEco", "power"), class = "data.frame", row.names = c(NA, 9L)
)
splom_dat <-
structure(
list(
param1 = c(
"hp", "hp", "hp", "co2", "co2", "co2",
"mpg", "mpg", "mpg", "hp", "hp", "hp", "co2", "co2", "co2", "mpg",
"mpg", "mpg", "hp", "hp", "hp", "co2", "co2", "co2", "mpg", "mpg",
"mpg", "hp", "hp", "hp", "co2", "co2", "co2", "mpg", "mpg", "mpg",
"hp", "hp", "hp", "co2", "co2", "co2", "mpg", "mpg", "mpg", "hp",
"hp", "hp", "co2", "co2", "co2", "mpg", "mpg", "mpg", "hp", "hp",
"hp", "co2", "co2", "co2", "mpg", "mpg", "mpg", "hp", "hp", "hp",
"co2", "co2", "co2", "mpg", "mpg", "mpg", "hp", "hp", "hp", "co2",
"co2", "co2", "mpg", "mpg", "mpg"
), param2 = c(
"hp", "co2", "mpg",
"hp", "co2", "mpg", "hp", "co2", "mpg", "hp", "co2", "mpg", "hp",
"co2", "mpg", "hp", "co2", "mpg", "hp", "co2", "mpg", "hp", "co2",
"mpg", "hp", "co2", "mpg", "hp", "co2", "mpg", "hp", "co2", "mpg",
"hp", "co2", "mpg", "hp", "co2", "mpg", "hp", "co2", "mpg", "hp",
"co2", "mpg", "hp", "co2", "mpg", "hp", "co2", "mpg", "hp", "co2",
"mpg", "hp", "co2", "mpg", "hp", "co2", "mpg", "hp", "co2", "mpg",
"hp", "co2", "mpg", "hp", "co2", "mpg", "hp", "co2", "mpg", "hp",
"co2", "mpg", "hp", "co2", "mpg", "hp", "co2", "mpg"
), value1 = c(
99,
99, 99, 96, 96, 96, 3.8, 3.8, 3.8, 150, 150, 150, 135, 135, 135,
7.4, 7.4, 7.4, 306, 306, 306, 197, 197, 197, 11.2, 11.2, 11.2,
238, 238, 238, 238, 238, 238, 11.2, 11.2, 11.2, 95, 95, 95, 203,
203, 203, 9.4, 9.4, 9.4, 120, 120, 120, 155, 155, 155, 9.2, 9.2,
9.2, 150, 150, 150, 186, 186, 186, 10.4, 10.4, 10.4, 188, 188,
188, 233, 233, 233, 13.3, 13.3, 13.3, 507, 507, 507, 246, 246,
246, 15.4, 15.4, 15.4
), value2 = c(
99, 96, 3.8, 99, 96, 3.8,
99, 96, 3.8, 150, 135, 7.4, 150, 135, 7.4, 150, 135, 7.4, 306,
197, 11.2, 306, 197, 11.2, 306, 197, 11.2, 238, 238, 11.2, 238,
238, 11.2, 238, 238, 11.2, 95, 203, 9.4, 95, 203, 9.4, 95, 203,
9.4, 120, 155, 9.2, 120, 155, 9.2, 120, 155, 9.2, 150, 186, 10.4,
150, 186, 10.4, 150, 186, 10.4, 188, 233, 13.3, 188, 233, 13.3,
188, 233, 13.3, 507, 246, 15.4, 507, 246, 15.4, 507, 246, 15.4
)
), .Names = c("param1", "param2", "value1", "value2"), class = "data.frame", row.names = c(NA,
81L)
)
output$bar <- renderTaucharts({
tauchart(bar_dat) %>% tau_bar("team", "effort", color = "priority") %>%
tau_legend() %>% tau_tooltip()
})
output$line <- renderTaucharts({
tauchart(line_dat) %>%
tau_line("date", "count", color = "type") %>%
tau_guide_x(label="Month") %>%
tau_guide_y(label="Count of completed entities", label_padding=50) %>%
tau_guide_padding(70, 70, 10, 10) %>%
tau_legend() %>%
tau_tooltip()
})
})
# This is the user-interface definition of a Shiny web application.
# You can find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com
#
library(shiny)
library(htmlwidgets)
library(taucharts)
shinyUI(fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarPanel(width = 3,
selectInput(
"data", label = h4("Data available:"),
choices = c("none", "little", "some", "lots"),
selected = 1
)),
mainPanel(
tabsetPanel(
tabPanel("bar", tauchartsOutput("bar")),
tabPanel("line", tauchartsOutput("line"))
)
)
))
@ThoDuyNguyen thx for piecing and example together! I just pushed 0.2.5.9000 to the dev
branch. It has a new function run_tau_app()
. If run with no parameters it will display a list of available built-in apps to run (which is just this one at the moment) and when run with an app name (e.g. run_tau_app("tau01")
) will display the location of the app (so it's easy to find the source files) and then run the app. If you can provide your full name I can add you as a contributor to the DESCRIPTION
file.
@hrbrmstr : You can use my name: "Thọ Duy Nguyễn". If you want to make Shiny examples to put into the package, please let me know. I'm planning to use this library for my Shiny dashboard so I think I will have many demos. Kind regards .
@hrbrmstr just come here to thump up for this package :+1: and maybe add publish to CRAN as to-do item?
doh! super-good idea. that is def missing and we def need to try to get it on CRAN
On Wed, Aug 5, 2015 at 9:52 PM, Shows Le [email protected] wrote:
@hrbrmstr https://github.com/hrbrmstr just come here to thump up for this package [image: :+1:] and maybe add publish to CRAN as to-do item?
— Reply to this email directly or view it on GitHub https://github.com/hrbrmstr/taucharts/issues/1#issuecomment-128208057.
Great package
TODO requests
Sort out Dates ( I know!) inc ability to show different in tooltip and axis. eg tt 26 Sep 2003, whilst axis just shows years(once!)
ability to angle legend labels
chart title
same opacity on points and legend - or preferably ability to set as required
encourage taucharts guys to do an equivalent of ggplot geom_rect. Or something that can have as background a time period eg presidents time in office, basketball managers tenure as backing to a, say, linechart
More to come(I'm sure)
Keep up the good work
Danke! A cpl quick comments:
- Dates: YES! (will try to get some more support this week for that)
- Angled labels: Not sure tauCharts JS supports that…will check into it
- Title: @timelyportfolio what's the official htmlwidget stance on titles? I keep getting similar reqs for
metricsgraphics
but when I supported titles in the pkg originally jj (or someone) removed it - Opacity: that's a tauCharts thing. we could do it in our pkg but it would not track with the intent of tauCharts (when you actually hover over the legend item the points/lines/etc show up in the non-alpha version). you might want to petition them for a setting for this
-
geom_rect
: roger that. i shall submit a req and you shld pile on after that :-)
Keep'em coming!
@hrbrmstr
- I find Angled labels v useful
- Title is lower priority for me
- Opacity was more an observation than a request
-
geom_rect
Let me know when you have raised issue and I will +1
@hrbrmstr
One key function missing across almost all htmlwidgets (except for visNetwork) is to return value of selected item. It will open a whole lot of opportunities for answering 'what's next' type of questions. To me this is an extremely important feature for interactive drill down, but somehow it's not mandated by htmlwidgets. Can this be part of to do list?
Return value of which selected item? Back to R? In the JavaScript?
I'm guessing https://github.com/DataKnowledge/visNetwork/issues/14 and the broader discussion https://github.com/ramnathv/htmlwidgets/issues/86. Was just playing with this in taucharts
last night using the tasks
functionality. I'll try to work up some code, but for now it will be a hack.
is this something taucharts even supports directly (i.e. if they change naming conventions/etc this will break, right?)
back to R (shiny), in visNetwork there's an option to fetch node. visOptions(nodesIdSelection = TRUE), and the selected id is returned via input$visobjectname_selected
Yes, it will break, and that is why I hesitated to even discuss.