那些人都知道Scala Library for Graphs/Charts或Google Visualization API的实现.
干杯
这对Protovis新人来说是一个相当艰巨的项目,但也许你可以帮助我把它分成易消化的块?
我想要构建的是一个"交互式区域图表",如下所示:
首先,它是数据......我在Excel中有各省的数据:
Province Year 10 100 1000 10000 A 1970 2 4 6 3 A 1971 3 6 8 5 B 1970 6 9 12 6 B 1971 4 8 11 8 .... ... . . . .
对于每个省和年,我希望能够绘制面积图:
vis.add(pv.Area)
.data(data.ProvinceA[1970])
.bottom(1)
.interpolate("basis")
.left(function(d) x(d.x))
.height(function(d) y(d.y))
.fillStyle("rgb(21,173,210)")
.anchor("top").add(pv.Line)
.lineWidth(3);
Run Code Online (Sandbox Code Playgroud)
然后我想添加两种类型的交互:
选择复选框和时间滑块一起确定在任何给定时间可见的区域.例如,如果选择了省A并且年份是1984年,则仅显示该区域.如果现在拖动时间滑块,则现在会显示省A的相应年份.如果选中了另一个省,则会覆盖这些区域,并在时间滑块移动时重新绘制这两个区域.
Protovis问题:
我正在绘制一个4维数据集.在x轴和y轴之外,我想用不同宽度和高度的矩形表示第3和第4维度.我可以这样做ggplot吗?谢谢.

我试图使用igraph包在R中可视化图形.我希望可视化边缘大小在2000到70,000之间的图形.情节看起来像这样:

这不是一个很好的情节,因为你看不到任何东西.我已经弄明白了如何带走标签,但由于顶点太大,你仍然看不到任何东西.
例如,这是相同的情节,但我在完成之前拍了照片.似乎R只在完成之前绘制边缘:
让我们考虑包含在R中的aplpack库中的bagplot示例 .Backplot是一个boxplot的双变量概括,因此可以深入了解两个轴中数据点的分布.
包袋示例:

示例代码:
# example of Rousseeuw et al., see R-package rpart
cardata <- structure(as.integer( c(2560,2345,1845,2260,2440,
2285, 2275, 2350, 2295, 1900, 2390, 2075, 2330, 3320, 2885,
3310, 2695, 2170, 2710, 2775, 2840, 2485, 2670, 2640, 2655,
3065, 2750, 2920, 2780, 2745, 3110, 2920, 2645, 2575, 2935,
2920, 2985, 3265, 2880, 2975, 3450, 3145, 3190, 3610, 2885,
3480, 3200, 2765, 3220, 3480, 3325, 3855, 3850, 3195, 3735,
3665, 3735, 3415, 3185, 3690, 97, 114, 81, 91, 113, 97, 97, …Run Code Online (Sandbox Code Playgroud) 使用Julia中的Plots.jl包,我可以使用各种后端基于两个向量绘制散点图,x并且y
k = 100
x = rand(k)
y = rand(k)
scatter(x, y)
Run Code Online (Sandbox Code Playgroud)
我找不到有关如何根据某些长度k向量给它们着色的信息z。你是怎样做的?
是否有可视化格式显示数据中类别的重叠比例,但比维恩图更精确?此外,维恩图通常用于显示2或3个类别,而不仅仅是令人困惑的类别.
堆积条,瀑布等可以显示每个类别的比例,但假设这些类别之间没有重叠.
那么对于重叠类别,显示其比例的最佳方式是什么,包括与另一类别重叠的比例?
我有以下简单的说法pandas.DataFrame:
df = pd.DataFrame(
{
"journey": ['ch1', 'ch2', 'ch2', 'ch1'],
"cat": ['a', 'b', 'a', 'c'],
"kpi1": [1,2,3,4],
"kpi2": [4,3,2,1]
}
)
Run Code Online (Sandbox Code Playgroud)
我的情节如下:
import bokeh.plotting as bpl
import bokeh.models as bmo
bpl.output_notebook()
source = bpl.ColumnDataSource.from_df(df)
hover = bmo.HoverTool(
tooltips=[
("index", "@index"),
('journey', '@journey'),
("Cat", '@cat')
]
)
p = bpl.figure(tools=[hover])
p.scatter(
'kpi1',
'kpi2', source=source)
bpl.show(p) # open a browser
Run Code Online (Sandbox Code Playgroud)
我没有按照颜色对点进行颜色编码cat.最终,我希望第一和第三点在相同的颜色,第二和第四点在两种不同的颜色.
如何使用Bokeh实现这一目标?
我在我的图表中使用FontAwesome,每个数据点都是FontAwesome字体中的符号,显示为图标.因此,在图例中,我想使用文本(FontAwesome中的符号)来描述项目.
我使用的代码如下:
from matplotlib.patches import Patch
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
ax = plt.gca()
ax.axis([0, 3, 0, 3])
prop = fm.FontProperties(fname='FontAwesome.otf', size=18)
ax.text(x=0, y=0, s='\uf1c7', color='r', fontproperties=prop)
ax.text(x=2, y=0, s='\uf050', color='g', fontproperties=prop)
plt.legend(handles=[Patch(color='r', label='label1'), Patch(color='g', label='label2')])
Run Code Online (Sandbox Code Playgroud)
所以我想要做的是将图例中的颜色条替换为与图中相同的图标.
我使用的句柄是补丁列表.但我发现在Patch中添加文本很难.我发现这里有一个很好的解决方案可以将图片添加到图例中:在matplotlib图例中插入图片
我已尝试在该答案中使用TextArea替换BboxImage,但它不起作用,TextArea不支持像axis.text这样的fontproperties.
那么有没有一种方法可以在图例中使用文字而不是标记?
library(tidyverse)
library(ggplot2)
library(ggstance)
dat <- structure(list(Gender = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Female", "Male"
), class = "factor"), Status = c("Case", "Case", "Case", "Case",
"Control", "Control", "Control", "Control", "Case", "Case", "Case",
"Case", "Control", "Control", "Control", "Control"), Type = c("Age30",
"Age30", "Age30", "Age30", "Age30", "Age30", "Age30", "Age30",
"Age50", "Age50", "Age50", "Age50", "Age50", "Age50", "Age50",
"Age50"), Risk = c(21.59862, 3.27479, 1.10073, 1.70754, 8.85253,
1.66318, 0.23228, 0.44844, 18.01182, 3.80135, 1.40662, …Run Code Online (Sandbox Code Playgroud)