我有数据(其中100个),每个都对应一个bin(0到99).我需要将这些数据绘制为直方图.但是,直方图会对这些数据进行计数,并且无法正确绘制,因为我的数据已经被分箱.
import random
import matplotlib.pyplot as plt
x = random.sample(range(1000), 100)
xbins = [0, len(x)]
#plt.hist(x, bins=xbins, color = 'blue')
#Does not make the histogram correct. It counts the occurances of the individual counts.
plt.plot(x)
#plot works but I need this in histogram format
plt.show()
Run Code Online (Sandbox Code Playgroud) 我有一个这种格式的数据文件:
Weight Industry Type
251,787 Kellogg h
253,9601 Kellogg a
256,0758 Kellogg h
....
Run Code Online (Sandbox Code Playgroud)
我读取数据并尝试使用以下命令绘制直方图:
ce <- read.table("file.txt", header = TRUE)
we = ce[,1]
in = ce[,2]
ty = ce[,3]
hist(we)
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
错误en hist.default(we):'x'必须是数字.
为了绘制三个变量的直方图,我需要做什么?
这是数据集:
set.seed(123)
myd <- data.frame (class = rep(1:4, each = 100), yvar = rnorm(400, 50,30))
require(ggplot2)
m <- ggplot(myd, aes(x = yvar))
p <- m + geom_histogram(colour = "grey40", fill = "grey40", binwidth = 10) +
facet_wrap(~class) + theme_bw( )
p + opts(panel.margin=unit(0 ,"lines"))
Run Code Online (Sandbox Code Playgroud)
我想为每个主题类落入的条形图添加标签,并生成类似后期功率点处理图形的内容.在R中有没有办法做到这一点?......
编辑:我们可以想到不同的指针,如点或错误栏,如果箭头不是不可能的
让我们说以下是要标记的主题:
class name yvar
2 subject4 104.0
3 subject3 8.5
3 subject1 80.0
4 subject2 40.0
4 subject1 115.0
classd <- data.frame (class = c(2,3,3,4,4),
name = c ("subject4", "subject3", "subject1", "subject2", "subject1"),
yvar …
Run Code Online (Sandbox Code Playgroud) 我有一个直方图(见下文),我试图找到平均值和标准偏差以及符合我的直方图曲线的代码.我认为SciPy或matplotlib中有一些东西可以提供帮助,但我尝试的每个例子都不起作用.
import matplotlib.pyplot as plt
import numpy as np
with open('gau_b_g_s.csv') as f:
v = np.loadtxt(f, delimiter= ',', dtype="float", skiprows=1, usecols=None)
fig, ax = plt.subplots()
plt.hist(v, bins=500, color='#7F38EC', histtype='step')
plt.title("Gaussian")
plt.axis([-1, 2, 0, 20000])
plt.show()
Run Code Online (Sandbox Code Playgroud) 我正在寻找关于如何在由pandas df.hist()命令生成的直方图集合顶部显示标题的建议.例如,在下面的代码生成的直方图图块中,我想在图的顶部放置一个通用标题(例如"我的直方图图集"):
data = DataFrame(np.random.randn(500).reshape(100,5), columns=list('abcde'))
axes = data.hist(sharey=True, sharex=True)
Run Code Online (Sandbox Code Playgroud)
我已尝试在hist命令中使用title关键字(即title ='我的直方图图集'),但这不起作用.
以下代码通过向其中一个轴添加文本(在ipython笔记本中)可以正常工作,但有点像kludge.
axes[0,1].text(0.5, 1.4,'My collection of histogram plots', horizontalalignment='center',
verticalalignment='center', transform=axes[0,1].transAxes)
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
我是matplotlib(1.3.1-2)的新手,我找不到合适的起点.我想用matplotlib在直方图中绘制点随时间的分布.
基本上我想绘制一个日期的累积总和.
date
2011-12-13
2011-12-13
2013-11-01
2013-11-01
2013-06-04
2013-06-04
2014-01-01
...
Run Code Online (Sandbox Code Playgroud)
这会
2011-12-13 -> 2 times
2013-11-01 -> 3 times
2013-06-04 -> 2 times
2014-01-01 -> once
Run Code Online (Sandbox Code Playgroud)
由于多年来会有很多积分,我想设置start date
我的x-Axis
和end date
,然后标记n-time steps
(即1年步骤),最后确定bins
将有多少.
我怎么做到这一点?
假设我有一个数据库列'grade',如下所示:
|grade|
| 1|
| 2|
| 1|
| 3|
| 4|
| 5|
Run Code Online (Sandbox Code Playgroud)
在SQL中有一个非平凡的方法来生成这样的直方图吗?
|2,1,1,1,1,0|
Run Code Online (Sandbox Code Playgroud)
其中2表示1级出现两次,1表示等级{2..5}出现一次,0表示等级6根本不出现.
我不介意直方图是否每个计数一行.
如果这很重要,数据库是由perl CGI通过unixODBC/FreeTDS访问的SQL Server.
编辑:谢谢你的快速回复!如果我可以确定哪个直方图值属于哪个等级,则不存在不存在的值(如上例中的等级6)是可以的.
我没有在Matlab之外做太多编码,但我需要将我的Matlab代码导出到另一种语言,很可能是C.我的Matlab代码包括一个直方图函数histc(),它放置我的输入数据(这是双-precision,而不是整数)到指定的bin数组中,以形成直方图.
我确信我可以拼凑几个嵌套循环来生成直方图函数,但是我需要这个函数快速且内存很轻,因为它将被重复且经常访问.
为了避免重新发明轮子,任何人都知道C语言是否有任何现有的直方图功能可供使用,或者是否需要这样的人通常自己创建它?
有人知道创建直方图的有效算法吗?伪代码很好.
提前致谢.
我有数据作为浮动列表,我想将其绘制为直方图.Hist()函数完美地完成了绘制绝对直方图的工作.但是,我无法弄清楚如何以相对频率格式表示它 - 我希望将它作为一个分数或理想情况下作为y轴上的百分比.
这是代码:
fig = plt.figure()
ax = fig.add_subplot(111)
n, bins, patches = ax.hist(mydata, bins=100, normed=1, cumulative=0)
ax.set_xlabel('Bins', size=20)
ax.set_ylabel('Frequency', size=20)
ax.legend
plt.show()
Run Code Online (Sandbox Code Playgroud)
我认为normed = 1参数会做到这一点,但它会给出分数太高而有时大于1.它们似乎也依赖于bin大小,好像它们没有被bin大小或其他东西标准化.然而,当我设置cumulative = 1时,很好地总结为1.那么,捕获的位置在哪里?顺便说一句,当我将相同的数据输入Origin并绘制它时,它给出了完全正确的分数.谢谢!