交易数据的 3d 散点图
3dscatter plot for trading data
我正在尝试使用 trade.sqlite3 数据库的 tables 退出一段时间。我想出了一个组合 table 的导入和导出 table。
A csv-file of the table can be downloaded here :
Added a virus scan of the file as well
table 的 str
了解它的外观:
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 300 obs. of 4 variables:
$ year : num 2002 2002 2002 2002 2002 ...
$ category: Factor w/ 10 levels "0--Food And Live Animals",..: 1 2 3 4 5 6 7 8 9 10 ...
$ value : num 4.94e+08 2.88e+08 9.40e+08 4.96e+07 7.76e+06 ...
$ type : Factor w/ 2 levels "Exp","Imp": 1 1 1 1 1 1 1 1 1 1 ...
现在我想使用 plot_ly
绘制此 table。
我想出了以下想法:
library(plotly)
total_val <- read.csv("Total_Value")
plot_ly(data = total_val, x = total_val$year,
y = total_val$value, z = total_val$category, color = total_val$category,
stroke = total_val$category, type = "scatter3d" )
我仍然遇到一些问题:
- 我想指出标记是导入还是导出类型。
- 像我一样使用颜色代码会产生以下警告:
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
有10个类别,我需要全部显示出来。除了颜色编码,还有更好的方法吗?
强烈推荐任何其他使情节更具信息性的意见。
在 this 之后,我想出了一个解决方案来绘制不同形状的 Imp 和 Exp。颜色问题就像使用 colors
参数指定颜色一样简单。
total_val$markers <- ifelse(total_val$type == "Exp", "circle", "diamond")
library(plotly)
p <- plot_ly(data = total_val, x = ~year,
y = ~value, z = ~category, color = ~category,
colors = rainbow(length(levels(total_val$category))),
text = ~paste('category:', category, '<br>value:', value, '<br>year:', year,
'<br>type:', type)) %>%
add_markers() %>%
layout(scene = list(xaxis = list(title = 'year'),
yaxis = list(title = 'Value'),
zaxis = list(title = 'Category')))
p <- plotly_build(p)
for (i in 1:length(p$x$data)) {
values <- total_val$markers[total_val$category == levels(total_val$category)[i]]
p$x$data[[i]]$marker$symbol <- values
}
p
希望对您有所帮助!
我正在尝试使用 trade.sqlite3 数据库的 tables 退出一段时间。我想出了一个组合 table 的导入和导出 table。
A csv-file of the table can be downloaded here :
Added a virus scan of the file as well
table 的str
了解它的外观:
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 300 obs. of 4 variables:
$ year : num 2002 2002 2002 2002 2002 ...
$ category: Factor w/ 10 levels "0--Food And Live Animals",..: 1 2 3 4 5 6 7 8 9 10 ...
$ value : num 4.94e+08 2.88e+08 9.40e+08 4.96e+07 7.76e+06 ...
$ type : Factor w/ 2 levels "Exp","Imp": 1 1 1 1 1 1 1 1 1 1 ...
现在我想使用 plot_ly
绘制此 table。
我想出了以下想法:
library(plotly)
total_val <- read.csv("Total_Value")
plot_ly(data = total_val, x = total_val$year,
y = total_val$value, z = total_val$category, color = total_val$category,
stroke = total_val$category, type = "scatter3d" )
我仍然遇到一些问题:
- 我想指出标记是导入还是导出类型。
- 像我一样使用颜色代码会产生以下警告:
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
有10个类别,我需要全部显示出来。除了颜色编码,还有更好的方法吗?
强烈推荐任何其他使情节更具信息性的意见。
在 this 之后,我想出了一个解决方案来绘制不同形状的 Imp 和 Exp。颜色问题就像使用 colors
参数指定颜色一样简单。
total_val$markers <- ifelse(total_val$type == "Exp", "circle", "diamond")
library(plotly)
p <- plot_ly(data = total_val, x = ~year,
y = ~value, z = ~category, color = ~category,
colors = rainbow(length(levels(total_val$category))),
text = ~paste('category:', category, '<br>value:', value, '<br>year:', year,
'<br>type:', type)) %>%
add_markers() %>%
layout(scene = list(xaxis = list(title = 'year'),
yaxis = list(title = 'Value'),
zaxis = list(title = 'Category')))
p <- plotly_build(p)
for (i in 1:length(p$x$data)) {
values <- total_val$markers[total_val$category == levels(total_val$category)[i]]
p$x$data[[i]]$marker$symbol <- values
}
p
希望对您有所帮助!