我有兴趣在2个协变量(消费者属性和提供者属性)中显示"大n"序数量表调查响应信息.我正在使用R的hexbin包.我希望六边形的大小表示调查响应的数量和六边形的颜色,以表示线性平均满意度响应.
我似乎无法找到文档,指出如何使用hexbin或其他现有的包.
编辑以获得更多说明:
我的数据结构如下:
csr_score pro_score rating
15 16 8
17 18 10
19 12 4
Run Code Online (Sandbox Code Playgroud)
其中该数据帧的长度为20,000行.
我正在使用以下代码使用matplotlib在Python中生成包含大量过度绘制线的图:
def a_run(n, t, s):
xaxis = np.arange(t, dtype=float)
#Scale x-axis by the step size
for i in xaxis:
xaxis[i]=(xaxis[i]*s)
for j in range(n):
result = a_solve(t,s)
plt.plot(result[:,1], color = 'r', alpha=0.1)
def b_run(n, t, s):
xaxis = np.arange(t, dtype=float)
#Scale x-axis by the step size
for i in xaxis:
xaxis[i]=(xaxis[i]*s)
for j in range(n):
result = b_solve(t,s)
plt.plot(result[:,1], color = 'b', alpha=0.1)
a_run(100, 300, 0.02)
b_run(100, 300, 0.02)
plt.xlabel("Time")
plt.ylabel("P")
plt.legend(("A","B"), shadow=True, fancybox=True) Legend providing same color for both …Run Code Online (Sandbox Code Playgroud) 我正在做一个聚类任务,我有一个距离矩阵.我希望将这个距离矩阵可视化为2D图.如果有任何方法可以在线或使用R或python等编程语言,请告诉我.我的距离矩阵如下,
我使用了经典的多维缩放功能(在R中),并获得了一个2D图,看起来像:
但我要找的是一个在它们之间运行节点和加权边的图.
我不知道我做错了什么.这很简单,但我不知道我的错误在哪里:
我有以下代码:
x<-seq(-3000,3000,length=1000)
hx<-dnorm(x,mean=0,sd=1392.857)
plot(x,hx,lwd=3,lty=4,col="blue")
Run Code Online (Sandbox Code Playgroud)
这使

然后我编码:
plot(x,hx,lwd=3,lty=1,col="blue")
Run Code Online (Sandbox Code Playgroud)
我得到了同样的照片?
为什么不在这里工作?同样适用于lwd?R莫名其妙地不认识它?
我从来没有像这样的问题.我刚下载了新的R版本,因为我的旧版本崩溃了.我的错误在哪里?
编辑:我怎样才能获得更薄的线?如果我使用lwd = 1它仍然很胖(只是稍微改变)?R线曾经非常薄,通常我不得不调整lwd?我怎样才能获得更细的线条?

这是我的日期时间barChart.当我使用小提琴(见此处)尝试复制问题时,它按预期工作.注意:从github加载数据需要一段时间(~30秒).
以下是图表的代码:
pnlPerDaybarChart
.height(300)
.width(700)
.dimension(dims.date)
.group(groups.date.pnlSum)
.valueAccessor(function(d) {
return Math.abs(d.value);
})
.renderTitle(false)
.x(d3.time.scale().domain([minDate,maxDate]))
.xUnits(d3.time.days)
.colors(colorChoice)
.colorAccessor(function(d) {
if (+d.value>0) {
return("positive");
} else {
return("negative");
}
})
.brushOn(true)
.elasticY(true)
.margins({left: 70 ,top: 10, bottom: 30, right: 50})
.centerBar(true);
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗?如果没有,我应该开始调试的任何想法?我花了相当多的时间在这个上面,我找不到任何错误.
编辑:当我删除.xUnits指令时,我得到非常瘦的条,但沿着轴放置得很好.这让我觉得计算条形宽度有问题.我不知道如何调试那个特定的计算.如果有人知道,我会很乐意深入研究它.
EDIT2:所有元素的width属性都设置为错误的值.如果有人能指出我在图书馆计算的地方,我可以从那里拿走它.<g class="chart-body"><g class="stack _0"><rect class="bar"></rect></g></g>svgd3
EDIT3:我找到了问题的根源.条形的宽度不正确,因为当calculateBarWidth()运行一次以实例化图形时,即使调用dc.redrawAll(),它也不再运行.在我的情况下,我连续添加了大量的记录到我的crossfilter并重绘图表.新问题是'如何强制calculateBarWidth()重新运行?'
下面的代码绘制平均值的采样分布图并计算20批95%置信区间.如何在直方图上绘制置信区间,如下面的Photoshop图像?
# plot sampling distribution of mean -----------------------------------------------------------
set.seed(1)
population <- rnorm(10000, 3, 3)
population_mean <- mean(population)
my_sample <- sample(population, 100, replace = FALSE)
standard_error <- sqrt(var(my_sample)/length(my_sample))
sampling_distribution_of_mean <- rnorm(10000, mean = population_mean, sd = standard_error)
library(ggplot2)
ggplot(data.frame(x = sampling_distribution_of_mean), aes(x)) + geom_histogram() + geom_vline(xintercept = population_mean, color = "red")
# calculate 20 lots of 95% confidence intervals -----------------------------------------------------------
my_confidence_intervals <- function(){
my_sample <- sample(population, 100, replace = FALSE)
sample_mean <- mean(my_sample)
standard_error <- sqrt(var(my_sample)/length(my_sample))
margin_of_error <- 1.96*standard_error
mean_minus_margin_of_error <- …Run Code Online (Sandbox Code Playgroud) 我正在绘制一些温度数据作为深度的函数.但我希望它对非科学家更友好,并明确表示顶部是水面.有关如何做到这一点的任何想法?(艺术浪潮的奖金!)
目前为止有以下几种选择:
library(dplyr); library(ggplot2); library(magrittr);
temperature <- rnorm(30, mean = 20)
depth <- seq(0:29)
df <- data.frame(temperature, depth)
no_surface <- df %>%
ggplot(aes(y = depth, x = temperature, colour = temperature)) +
geom_path(size = 2) +
scale_y_reverse() +
scale_colour_gradient(low = "blue", high = "red")+
theme_classic() +
theme(legend.position = "none")
flat_surface <- no_surface + geom_hline(yintercept = 0)
wavy_surface <- no_surface + stat_function(fun = function(x)sin(x^1.5),
size = 1)
Run Code Online (Sandbox Code Playgroud) 我对下面的可视化(Decile术语)非常感兴趣
我想知道如何在R中做到这一点.
当然有直方图和密度图,但它们没有做出如此好的可视化.特别是,我想知道是否可以用ggplot/ 来做tidyverse.
编辑以响应评论,
library(dplyr)
library(ggplot2)
someData <- data_frame(x = rnorm(1000))
ggplot(someData, aes(x = x)) +
geom_histogram()
这会生成一个直方图(参见http://www.r-fiddle.org/#/fiddle?id=LQXazwMY&version=1)
但我怎么能得到coloful酒吧?如何实现小矩形?(箭头不太相关).
我正在和我一起工作
In [2]: bokeh.__version__
Out[2]: '0.12.1'
In [4]: holoviews.__version__
Out[4]: 1.8.4
Run Code Online (Sandbox Code Playgroud)
以下导入
from holoviews.plotting.bokeh import BokehRenderer
Run Code Online (Sandbox Code Playgroud)
产生错误:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-c53ae81a79e0> in <module>()
----> 1 from holoviews.plotting.bokeh import BokehRenderer
/usr/local/lib/python3.6/site-packages/holoviews/plotting/bokeh/__init__.py in <module>()
2
3 import numpy as np
----> 4 from bokeh.palettes import all_palettes
5
6 from ...core import (Store, Overlay, NdOverlay, Layout, AdjointLayout,
ImportError: cannot import name 'all_palettes'
Run Code Online (Sandbox Code Playgroud)
它以前工作过,我无法追踪发生了什么变化.
如何快速可视化R中的大型矩阵?
我有时使用大型数字矩阵(例如3000 x 3000),并且快速可视化它们是一个非常有用的质量控制步骤.这在我以前选择的语言Matlab中非常简单快捷.例如,显示1000x1000矩阵需要0.5秒:
rand_matrix = rand(1000,1000);
tic
imagesc(rand_matrix)
toc
>> Elapsed time is 0.463903 seconds.
Run Code Online (Sandbox Code Playgroud)
我想在R中具有相同的能力,但遗憾的是,在R中,可视化矩阵似乎非常缓慢.例如,使用image.plot()相同的随机矩阵需要10秒以上才能显示:
require(tictoc)
require(image.plot)
mm = 1000
nn = 1000
rand.matrix = matrix(runif(mm*nn), ncol=mm, nrow=nn)
tic("Visualizing matrix")
image.plot(rand.matrix)
toc()
> Visualizing matrix: 11.744 sec elapsed
Run Code Online (Sandbox Code Playgroud)
随着矩阵变大,问题变得更糟.例如,与Matlab中的秒数相比,3000x3000矩阵在R中可视化需要几分钟.这显然不适用于数据探索.我尝试过ggplot,而熔化+ geom_raster()仍然需要一分钟.
我究竟做错了什么?有没有一种快速的方法可视化R中的矩阵?一个理想的解决方案需要一两行.
r ×6
ggplot2 ×3
matrix ×2
python ×2
bokeh ×1
d3.js ×1
dc.js ×1
holoviews ×1
javascript ×1
matlab ×1
matplotlib ×1
statistics ×1