标签: histogram

ggplot()行透明度

如何更改ggplot()图表中线条的透明度(即直方图,线图等)?

例如,考虑以下代码:

data <- data.frame(a=rnorm(100), b = rnorm(100,.5,1.2))
data <- melt(data)
colnames(data) <- c("Category", "Intensity")
p <- ggplot(data, aes(x=Intensity))
p <- p + geom_density(aes(color=Category), size=2, alpha=.4)
print(p)
Run Code Online (Sandbox Code Playgroud)

我预计线条会透明(如alpha=.4),但它们不是.

在此输入图像描述

r histogram ggplot2 line-plot

23
推荐指数
1
解决办法
2万
查看次数

在ggplot2中创建密度直方图?

我想创建下一个直方图密度图ggplot2.以"正常"方式(基本包)非常简单:

set.seed(46)
vector <- rnorm(500)  
breaks <- quantile(vector,seq(0,1,by=0.1))
labels = 1:(length(breaks)-1)
den = density(vector)
hist(df$vector,
     breaks=breaks,
     col=rainbow(length(breaks)),
     probability=TRUE)
lines(den)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

到目前为止,我已经达到了ggplot:

seg <- cut(vector,breaks,
           labels=labels,
           include.lowest = TRUE, right = TRUE)
df = data.frame(vector=vector,seg=seg)

ggplot(df) + 
     geom_histogram(breaks=breaks,
                    aes(x=vector,
                        y=..density..,
                        fill=seg)) + 
     geom_density(aes(x=vector,
                      y=..density..))
Run Code Online (Sandbox Code Playgroud)

但是"y"尺度具有错误的尺寸.我注意到下一次运行得到了正确的"y".

 ggplot(df) + 
     geom_histogram(breaks=breaks,
                    aes(x=vector,
                    y=..density..,
                    fill=seg)) + 
     geom_density(aes(x=vector,
                      y=..density..))
Run Code Online (Sandbox Code Playgroud)

我只是不明白.y=..density..在那里,应该是高度.那么为什么我试图填充它时我的尺度会被修改?

我确实需要颜色.我只想要一个直方图,其中根据默认的ggplot填充颜色定向设置每个块的中断和颜色.

r colors histogram ggplot2 probability-density

23
推荐指数
2
解决办法
5万
查看次数

Matplotlib直方图与收集箱的高值

我有一个包含值的数组,我想创建它的直方图.我主要对低端号码感兴趣,并希望在一个箱子中收集300以上的每个号码.此箱应具有与所有其他(同样宽)箱相同的宽度.我怎样才能做到这一点?

注意:此问题与此问题有关:在Matplotlib直方图中定义bin宽度/ x轴刻度

这是我到目前为止所尝试的:

import matplotlib.pyplot as plt
import numpy as np

def plot_histogram_01():
    np.random.seed(1)
    values_A = np.random.choice(np.arange(600), size=200, replace=True).tolist()
    values_B = np.random.choice(np.arange(600), size=200, replace=True).tolist()

    bins = [0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300, 600]

    fig, ax = plt.subplots(figsize=(9, 5))
    _, bins, patches = plt.hist([values_A, values_B], normed=1,  # normed is deprecated and will be replaced by density
                                bins=bins,
                                color=['#3782CC', '#AFD5FA'],
                                label=['A', 'B'])

    xlabels = np.array(bins[1:], dtype='|S4')
    xlabels[-1] = '300+'

    N_labels = len(xlabels)
    plt.xlim([0, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib histogram bins

23
推荐指数
2
解决办法
1万
查看次数

使用ggplot2组合Boxplot和直方图

我试图结合直方图和箱图来可视化连续变量.这是我到目前为止的代码

require(ggplot2)
require(gridExtra)
p1 = qplot(x = 1, y = mpg, data = mtcars, xlab = "", geom = 'boxplot') + 
     coord_flip()
p2 = qplot(x = mpg, data = mtcars, geom = 'histogram')
grid.arrange(p2, p1, widths = c(1, 2))
Run Code Online (Sandbox Code Playgroud)

情节

除了x轴的对齐外,它看起来很好.谁能告诉我如何对齐它们?或者,如果某人有更好的方法来使用此图表ggplot2,那么也会受到赞赏.

r histogram ggplot2 boxplot

22
推荐指数
2
解决办法
9829
查看次数

如何在python中绘制密度图?

我有一个.txt文件,其中包含2D地图中规则间隔点的x,y值,第三个坐标是该点的密度.

4.882812500000000E-004  4.882812500000000E-004  0.9072267
1.464843750000000E-003  4.882812500000000E-004   1.405174
2.441406250000000E-003  4.882812500000000E-004   24.32851
3.417968750000000E-003  4.882812500000000E-004   101.4136
4.394531250000000E-003  4.882812500000000E-004   199.1388
5.371093750000000E-003  4.882812500000000E-004   1278.898
6.347656250000000E-003  4.882812500000000E-004   1636.955
7.324218750000000E-003  4.882812500000000E-004   1504.590
8.300781250000000E-003  4.882812500000000E-004   814.6337
9.277343750000000E-003  4.882812500000000E-004   273.8610
Run Code Online (Sandbox Code Playgroud)

当我在gnuplot中绘制此密度图时,使用以下命令:

set palette rgbformulae 34,35,0
set size square
set pm3d map
splot "dens_map.map" u 1:2:(log10($3+10.)) title "Density map"`
Run Code Online (Sandbox Code Playgroud)

这给了我这个美丽的形象:

在此输入图像描述

现在我想用matplotlib获得相同的结果.

python matplotlib histogram

22
推荐指数
2
解决办法
5万
查看次数

在直方图matplotlib中更改默认x范围

我想更改直方图的默认x范围.数据范围是7到12.但是,默认情况下,直方图从7开始,到13结束.我希望它从6.5开始,到12.5结束.但是,刻度应该从7到12.我该怎么做?

import asciitable 
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import pylab
from pylab import xticks

data = asciitable.read(file)
hmag = data['col8']
visits = data['col14']
origin = data['col13']


n, bins, patches = plt.hist(hmag, 30, facecolor='gray', align='mid')
xticks(range(7,13))
pylab.rc("axes", linewidth=8.0)
pylab.rc("lines", markeredgewidth=2.0) 
plt.xlabel('H mag', fontsize=14)
plt.ylabel('# of targets', fontsize=14)
pylab.xticks(fontsize=15)
pylab.yticks(fontsize=15)
plt.grid(True)
plt.savefig('hmag_histogram.eps', facecolor='w', edgecolor='w', format='eps')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib xrange histogram

21
推荐指数
2
解决办法
7万
查看次数

直方图均衡不适用于彩色图像 - OpenCV

我正在尝试使用OpenCV使用以下函数执行直方图均衡

Mat Histogram::Equalization(const Mat& inputImage)
{
    if(inputImage.channels() >= 3)
    {
        vector<Mat> channels;
        split(inputImage,channels);
        Mat B,G,R;

        equalizeHist( channels[0], B );
        equalizeHist( channels[1], G );
        equalizeHist( channels[2], R );
        vector<Mat> combined;
        combined.push_back(B);
        combined.push_back(G);
        combined.push_back(R);
        Mat result;
        merge(combined,result);
        return result;
    }
    return Mat();
}
Run Code Online (Sandbox Code Playgroud)

但是当我得到结果时,输入和输出图像似乎没有区别,我做错了什么?

对不起图像质量不好,"预处理"(左)是直方图均衡,你可以看到它与输入相同(右).

在此输入图像描述

错过了什么?

c++ opencv image-processing histogram

21
推荐指数
2
解决办法
3万
查看次数

如何在Ruby中从平面数组创建直方图

如何创建整数数组的直方图?例如:

data = [0,1,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,5,5,6,6,6,7,7,7,7,7,8,9,9,10]
Run Code Online (Sandbox Code Playgroud)

我想基于有多少项有用于创建直方图0,1,2,等等.在Ruby中有一个简单的方法吗?

输出应该是两个数组.第一个数组应包含组(bin),第二个数组应包含出现次数(频率).

对于data上面给出的,我希望以下输出:

bins         # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
frequencies  # => [1, 1, 5, 6, 4, 2, 3, 5, 1, 2, 1]
Run Code Online (Sandbox Code Playgroud)

ruby histogram

21
推荐指数
2
解决办法
1万
查看次数

如何使用R中的数据值或百分比标记直方图条

我想用直方图中的每个条形标记该区域中的计数数量或该区域中总计数的百分比.我敢肯定必须有办法做到这一点,但我找不到它.这个页面有几张SAS直方图的照片,基本上我正在尝试做的事情(但该网站似乎没有R版本):http://www.ats.ucla.edu/stat/sas/常见问题/ histogram_anno.htm

如果可能的话,根据需要,可以灵活地将标签放在条形图的上方或某处.

我正在尝试使用基本R绘图工具,但我对ggplot2和格子中的方法感兴趣.

graphics r histogram

20
推荐指数
2
解决办法
6万
查看次数

使用matplotlib通过样本绘制概率密度函数

我想根据我的样本绘制概率密度函数的近似值; 模拟直方图行为的曲线.我可以提供我想要的样品.

python probability matplotlib histogram

20
推荐指数
2
解决办法
6万
查看次数