我有两个密度图,一个在另一个上面。如何用 2 种不同颜色填充曲线下方的区域并添加一些透明度,以便重叠区域可见。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sys
import seaborn as sns
x=[1,1,1,1,1,1,1,0,0,0,0,0,0,0]
y=[1,1,1,0,2,0,0,0,1,1,0,1,0,1]
sns.distplot(x, hist=False,color="green")
sns.distplot(y, hist=False,color="blue")
Run Code Online (Sandbox Code Playgroud)
我有一系列整数区间,例如[1,5],[1,3],[3,4]我想创建一个密度图.我想我真正想要的是在整个范围内重叠每个整数的间隔数量的图.使用上面的数据可能看起来像这样:
3 X
2 X X X X
1 X X X X X
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
我能想到的明显(也是可怕的)方法是遍历每个区间并将所有整数添加到单个向量中,然后使用hist()或类似函数来创建我的图.有一种直截了当的方法吗?
谢谢!
使用ggplot's创建一个水平图,stat_density_2d我得到了“破碎的”多边形。例如,下面示例中的外层。
我该如何解决这个问题,以获得平滑的形式?
set.seed(0)
n <- 50
d <- data.frame(x = rnorm(n, -.7, .5),
y = rnorm(n, 0, .8))
ggplot(d, aes(x, y)) +
geom_point() +
stat_density_2d(aes(fill = ..level..), alpha=.1, geom = "polygon")
Run Code Online (Sandbox Code Playgroud) 我想要一个密度图,这里是代码:
d = as.matrix(read.csv(file = '1.csv'))
plot(density(d))
Run Code Online (Sandbox Code Playgroud)
我的数据是一个数字列表.我不明白的是y轴的值大于1我认为有什么不对并搜索互联网,但我找不到任何资源,你们能帮助我吗? 在 这里输入图像描述是这样的数据:链接:http://pan.baidu.com/s/1hsE8Ony密码:7a4z
我有一个数据框(aa),其每日值为7个变量,我想使用R中的ggplot在一个图中创建所有变量的密度图。
date 1 2 3 4 5 6 7
1/1/1951 1:00 576.568 308.596 501.752 359.868 772.522 475.146 307.991
1/2/1951 1:00 722.986 461.295 652.33 525.561 1806.75 724.128 460.697
1/3/1951 1:00 859.542 582.949 910.248 642.133 2388.73 959.896 579.396
1/4/1951 1:00 1136.49 704.732 1047.04 1304.73 2619.04 1545.61 690.574
1/5/1951 1:00 1747.84 769.764 1099.24 1828.5 2695.6 2052.11 790.35
1/6/1951 1:00 1842.66 811.765 1130.44 2031.97 2747.14 2532.89 860.417
1/7/1951 1:00 2734.15 895.825 1158.42 2145.6 2772.58 2826.31 944.181
1/8/1951 1:00 2870.02 996.17 1159.5 2123.04 2773.86 3385.17 …Run Code Online (Sandbox Code Playgroud) 我想知道是否有一个参数来抑制 R 中附带的默认灰色水平abline(见下图)density()?
plot(density(rnorm(1e4)))
Run Code Online (Sandbox Code Playgroud)
有人可以解释geom_density位置选项stack与identity.情节看起来非常不同但仍然重叠.这两者之间根本有什么不同?
我正在尝试使用ggridges包创建一个joyplot (基于ggplot2).一般的想法是,一个joyplot创建了精确缩放的堆积密度图.但是,我似乎无法使用加权密度生成其中一个.是否有一些方法可以在计算密钥套的创建中计算密度时采用抽样权重(加权密度)?
这里是该ggridges软件包文档的链接:https://cran.r-project.org/web/packages/ggridges/ggridges.pdf我知道很多基于ggplot的软件包可以接受额外的美学,但我不知道知道如何为这种类型的geom添加权重.
另外,这是ggplot中未加权的joyplot的示例.我试图将其转换为加权图,密度根据pweight加权.
# Load package, set seed
library(ggplot)
set.seed(1)
# Create an example dataset
dat <- data.frame(group = c(rep("A",100), rep("B",100)),
pweight = runif(200),
val = runif(200))
# Create an example of an unweighted joyplot
ggplot(dat, aes(x = val, y = group)) + geom_density_ridges(scale= 0.95)
Run Code Online (Sandbox Code Playgroud) 我有以下数据集:
https://app.box.com/s/au58xaw60r1hyeek5cua6q20byumgvmj
我想根据一天中的时间创建密度图。这是我到目前为止所做的:
library("ggplot2")
library("scales")
library("lubridate")
timestamp_df$timestamp_time <- format(ymd_hms(hn_tweets$timestamp), "%H:%M:%S")
ggplot(timestamp_df, aes(timestamp_time)) +
geom_density(aes(fill = ..count..)) +
scale_x_datetime(breaks = date_breaks("2 hours"),labels=date_format("%H:%M"))
Run Code Online (Sandbox Code Playgroud)
它给出以下错误:
Error: Invalid input: time_trans works with objects of class POSIXct only
如果我将其转换为POSIXct,它会将日期添加到数据中。
更新1
以下数据转换为“NA”
timestamp_df$timestamp_time <- as.POSIXct(timestamp_df$timestamp_time, format = "%H:%M%:%S", tz = "UTC"
Run Code Online (Sandbox Code Playgroud)
更新2
我对ggplot2包和渐变填充有一些困难.对于数据点数较少的数据,其梯度和密度强度并不匹配.这是一个例子:
我使用的代码是:
pt <- read.xlsx("plots.xlsx", sheetName = "PT1_TB varseq", stringsAsFactors=FALSE)
ggplot(pt, aes(x=pt$BAF, y=pt$LogR) ) +
stat_density_2d(aes(fill = ..density..), geom = "raster", contour = FALSE) +
scale_fill_distiller(palette= "Spectral", direction=-1) +
scale_y_continuous(name="LogR", limits = c(-0.8, 0.6), breaks = seq(-0.8, 0.6, 0.2)) +
scale_x_continuous(name="BAF", breaks = seq(0, 0.8, 0.2)) +
theme(
legend.position='none',
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line = element_line(colour = "black")
) +
geom_point(aes(shape = factor("cyl")), size = 1) + scale_shape(solid = FALSE)
Run Code Online (Sandbox Code Playgroud)
我希望渐变更突然地改变,例如,我希望在(0; 0.2)和(0.25; -0.2)之间的点之间看到更多的颜色分离.此外,没有点的中间的黄色应该是蓝色.
当我在它的时候,是否有人知道如何消除轴和实际情节之间的白色间隙?
提前致谢 …
我想创建一个类似于下面所附的图的图。
我的数据框是按以下格式构建的:
Playlist Type Streams
0 a classical 94
1 b hip-hop 12
2 c classical 8
Run Code Online (Sandbox Code Playgroud)
“流行度”类别可以用“流”代替 - 唯一的是流变量具有很高的值方差(从 0 到 10,000+),因此我认为密度图可能看起来很奇怪。
然而,我的第一个问题是,当按“类型”列分组然后创建密度图时,如何在 Pandas 中绘制与此类似的图表。
我尝试了各种方法,但没有找到一个好的方法来确立我的目标。
我有三个 ggplots (g1, g2, g3)。
它们都来自不同的数据集,并且每个都具有相同的xlim和ylim。
我想将它们全部绘制在一页上并叠加它们。
我只在网上找到了解释如何在同一页面上从同一数据集绘制多个密度图的资源。
是否有我可以编写的代码,以便将所有后续图绘制在同一页面上?