{"action":"created","issue":{"url":"https://api.github.com/repos/spencerlyon2/PlotlyJS.jl/issues/36","repository_url":"https://api.github.com/repos/spencerlyon2/PlotlyJS.jl","labels_url":"https://api.github.com/repos/spencerlyon2/PlotlyJS.jl/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/spencerlyon2/PlotlyJS.jl/issues/36/comments","events_url":"https://api.github.com/repos/spencerlyon2/PlotlyJS.jl/issues/36/events","html_url":"https://github.com/spencerlyon2/PlotlyJS.jl/issues/36","id":150167390,"number":36,"title":"Background not set?","user":{"login":"tbreloff","id":933338,"avatar_url":"https://avatars.githubusercontent.com/u/933338?v=3","gravatar_id":"","url":"https://api.github.com/users/tbreloff","html_url":"https://github.com/tbreloff","followers_url":"https://api.github.com/users/tbreloff/followers","following_url":"https://api.github.com/users/tbreloff/following{/other_user}","gists_url":"https://api.github.com/users/tbreloff/gists{/gist_id}","starred_url":"https://api.github.com/users/tbreloff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tbreloff/subscriptions","organizations_url":"https://api.github.com/users/tbreloff/orgs","repos_url":"https://api.github.com/users/tbreloff/repos","events_url":"https://api.github.com/users/tbreloff/events{/privacy}","received_events_url":"https://api.github.com/users/tbreloff/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-21T19:20:27Z","updated_at":"2016-04-21T20:29:15Z","closed_at":null,"body":"When I do this:\r\n\r\n```julia\r\nusing ExamplePlots; test_examples(:plotly, 13)\r\n```\r\nit brings up a browser window and the plot looks correct (tan background).  But if I do the same for the PlotlyJS backend, the background is white:\r\n\r\n```julia\r\nusing ExamplePlots; test_examples(:plotlyjs, 13)\r\n```\r\n\r\nAny ideas why they would be different?  It should be the same JSON.\r\n"},"comment":{"url":"https://api.github.com/repos/spencerlyon2/PlotlyJS.jl/issues/comments/213101544","html_url":"https://github.com/spencerlyon2/PlotlyJS.jl/issues/36#issuecomment-213101544","issue_url":"https://api.github.com/repos/spencerlyon2/PlotlyJS.jl/issues/36","id":213101544,"user":{"login":"spencerlyon2","id":1001948,"avatar_url":"https://avatars.githubusercontent.com/u/1001948?v=3","gravatar_id":"","url":"https://api.github.com/users/spencerlyon2","html_url":"https://github.com/spencerlyon2","followers_url":"https://api.github.com/users/spencerlyon2/followers","following_url":"https://api.github.com/users/spencerlyon2/following{/other_user}","gists_url":"https://api.github.com/users/spencerlyon2/gists{/gist_id}","starred_url":"https://api.github.com/users/spencerlyon2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spencerlyon2/subscriptions","organizations_url":"https://api.github.com/users/spencerlyon2/orgs","repos_url":"https://api.github.com/users/spencerlyon2/repos","events_url":"https://api.github.com/users/spencerlyon2/events{/privacy}","received_events_url":"https://api.github.com/users/spencerlyon2/received_events","type":"User","site_admin":false},"created_at":"2016-04-21T20:29:15Z","updated_at":"2016-04-21T20:29:15Z","body":"Looks like you managed to hit on one of just a few trace attributes:\r\n\r\n```\r\njulia> using JSON\r\n\r\njulia> d = JSON.parsefile(Pkg.dir(\"PlotlyJS\", \"deps\", \"plotschema.json\"));\r\n\r\njulia> get_keys(x) = [];\r\n\r\njulia> get_keys(d::Associative) = vcat(collect(keys(d)), map(get_keys, values(d))...);\r\n\r\njulia> unique(filter(x->contains(x, \"_\") && !(x[1] == '_'), get_keys(d[\"schema\"][\"traces\"])))\r\n5-element Array{Any,1}:\r\n \"error_y\"\r\n \"error_x\"\r\n \"copy_ystyle\"\r\n \"copy_zstyle\"\r\n \"error_z\"\r\n\r\njulia> unique(filter(x->contains(x, \"_\") && !(x[1] == '_'), get_keys(d[\"schema\"][\"layout\"])))\r\n2-element Array{Any,1}:\r\n \"plot_bgcolor\"\r\n \"paper_bgcolor\"\r\n```\r\n\r\nI'm not really sure what the best way around this is. I noticed that you set the layout attributes using the `relayout!` methods, which is great. The problem with those is that they end up calling `setindex!`, which is where the underscore magic gets applied.\r\n\r\nAny suggestions on an elegant way to deal with this? I think you should still use `relayout!`, but I should maybe add a kwarg to that function that describes if we should do the underscore replacing or just operate directly with the keys that were handed to us?"}}