标签: bar-chart

更改熊猫条形图中的 alpha 值以匹配变量

我有一个 DataFrame,其中包含几个统计模型的不同估计值和 p 值作为列。

df = pd.DataFrame({'m4_params':np.random.normal(size=3),
                   'm4_pvalues':np.random.random_sample(3),
                   'm5_params':np.random.normal(size=3),
                   'm5_pvalues':np.random.random_sample(3),
                   'm6_params':np.random.normal(size=3),
                   'm6_pvalues':np.random.random_sample(3)})
Run Code Online (Sandbox Code Playgroud)

我可以通过转置和绘制为barh

df[['m4_params','m5_params','m6_params']].T.plot(kind='barh')
Run Code Online (Sandbox Code Playgroud)

但是,我还想通过使用一个简单的函数(如alpha = 1 - pvalue.

目标是使显着性较高的条形更强,而显着性较弱的条形更透明。据我所知,alpha关键字只接受浮点数,这意味着我需要某种方式来访问图中每个条的属性。

alpha matplotlib bar-chart pandas

1
推荐指数
1
解决办法
3130
查看次数

如何在R barplot斜体上制作列标签

这可能是一个简单的问题,但是如何使条形图上的列标签成为斜体,而不是x-axis标签,而是专门的列标签。我到目前为止的代码是

bp = barplot(means, names.arg = c("CON", "TRI"), ylim=c(0,120), ylab="PA", xlab="M")
Run Code Online (Sandbox Code Playgroud)

r graph bar-chart

1
推荐指数
1
解决办法
1385
查看次数

更改使用 barplot() 创建的图形的宽度

当我使用 时barplot,如果名称太大,我看不到条的名称。例如:

barplot(as.numeric(c(2, 4, 1, 6)), col = c("lightblue"), main="Barplot",
        names.arg=c("This is bar 1...1", "This is bar 1...2",
                    "This is bar 1...3", "This is bar 1...4"), 
        xpd=TRUE, las=1, lwd=1, cex.names=0.5)
Run Code Online (Sandbox Code Playgroud)

当我使用时horiz=TRUE,我看不到左边的名字:

barplot(as.numeric(c(2, 4, 1, 6)), col = c("lightblue"), main="Barplot", 
        names.arg=c("This is \nbar 2...1", "This is bar 2...2",
                    "This is bar 2...3", "This is bar 2...4"), 
        xpd=TRUE, las=1, lwd=1, horiz=TRUE, space=1)
Run Code Online (Sandbox Code Playgroud)

在名称中使用换行符(例如“这是 \nbar 2...1”)或减小文本大小,例如cex.names=0.5“解决”问题,但我更愿意添加空格以使名称适合。

有没有能力改变包括情节在内的整个图形的宽度?

r bar-chart sweave

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

在 R ggplot2 中使用 position = "fill" 在条形图上绘制标签

如何使用 ggplot2 绘制带有计数标签的“填充”条?

我可以为“堆叠”条形图执行此操作。但我很困惑,否则。

这是使用dplyrmpg数据集的可重现示例

library(ggplot)
library(dplyr)

mpg_summ <- mpg %>%
  group_by(class, drv) %>%
  summarise(freq = n()) %>%
  ungroup() %>%
  mutate(total = sum(freq), 
         prop = freq/total)

g <- ggplot(mpg_summ, aes(x = class, y = prop, group = drv))
g + geom_col(aes(fill = drv)) +
  geom_text(aes(label = freq), position = position_stack(vjust = .5))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是,如果我尝试绘制填充条的计数,则它不起作用

g <- ggplot(mpg_summ, aes(x=class, fill=drv))
g + stat_count(aes(y = (..count..)/sum(..count..)), geom="bar", position="fill")  +
  scale_y_continuous(labels = percent_format())
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

此外,如果我尝试:

g <- ggplot(mpg_summ, aes(x=class, fill=drv))
g …
Run Code Online (Sandbox Code Playgroud)

plot r bar-chart ggplot2

1
推荐指数
1
解决办法
6237
查看次数

如何使ggplot订购堆叠条形图

我有以下 R 代码,我在其中转换数据,然后按特定列对其进行排序:

df2 <- df %>% 
group_by(V2, news) %>% 
tally() %>% 
complete(news, fill = list(n = 0)) %>% 
mutate(percentage = n / sum(n) * 100)

df22 <- df2[order(df2$news, -df2$percentage),]
Run Code Online (Sandbox Code Playgroud)

我想在 ggplot 中应用有序数据“df22”:

ggplot(df22, aes(x = V2, y = percentage, fill = factor(news, labels = c("Read","Otherwise")))) +
geom_bar(stat = "identity", position = "fill", width = .7) +
coord_flip() + guides(fill = guide_legend(title = "Online News")) + 
scale_fill_grey(start = .1, end = .6) + xlab("Country") + ylab("Share")
Run Code Online (Sandbox Code Playgroud)

不幸的是,ggplot 仍然返回一个没有订单的情节:

在此处输入图片说明

有谁知道我的代码有什么问题?这与使用每个条形图的单个值对条形图进行排序不同,例如在 …

r bar-chart ggplot2

1
推荐指数
1
解决办法
3088
查看次数

Chart.js 中的水平 xAxis 标签

我正在使用一个必须放置在一个小 div 内的 chart-js 条形图,所以我正在寻找一种方法来使 x 轴上的标签水平而不是对角线。关键是为实际条形增加尽可能多的高度,因为现在标签占用了几乎 40% 的可用空间。

这是我的代码:

let options = {
    responsive: true,
    maintainAspectRatio: false,
    scales: {
        yAxes: [{
            ticks: {
                beginAtZero: true
            }
        }],
        xAxes: [{
            display: false
        }]
    }
};
let ctx = document.getElementById('barChartCtx');
let barChart = new Chart(ctx, {
    type: 'bar',
    data: data,
    options: options
});
Run Code Online (Sandbox Code Playgroud)

我暂时禁用了 xAxis 标签。它有效,但理想情况下我希望它们是水平的。想法?

javascript bar-chart chart.js

1
推荐指数
1
解决办法
3113
查看次数

散景 100% 堆积条形图

制作 100% 堆积条形图的最简单方法是什么Bokeh?,例如,假设我有以下列

S    P
34   65
23   44
12   81
 9   23
Run Code Online (Sandbox Code Playgroud)

excel我可以使这种类型的情节很容易,所以我会得到这样的东西:

在此处输入图片说明

但是,我想进行一些交互(例如在悬停时显示值),因此我想在Bokeh. 我是初学者,Bokeh我还没有找到任何类似的例子。那么,最好的方法是什么?

python bar-chart stacked-chart bokeh

1
推荐指数
1
解决办法
5277
查看次数

如何将 Excel 文件作为数据框读取

我正在尝试用 IMF 的数据制作一些条形图。我试图用 read.table() 读取 xls 文件:

base <- read.table("http://www.imf.org/external/pubs/ft/weo/2017/02/weodata/WEOOct2017all.xls", header=TRUE, sep="\t", fill=TRUE)
Run Code Online (Sandbox Code Playgroud)

但是,数据保存为列表:

typeof(base)
[1] "list"
Run Code Online (Sandbox Code Playgroud)

而且我不知道如何提取数据来制作条形图。例如,我想为国家“ARG”和 2010-2019 年(excel 中的第 40-49 列)绘制变量“NGDP_RPCH”。

我试过这个,但没有用:

graph <- base[which((base[2]=="ARG")&(base[3]=='NGDP_RPCH')),40:49]
graph
[1] X2010 X2011 X2012 X2013 X2014 X2015 X2016 X2017 X2018 X2019
<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)

我想知道如何将数据保存为数据框,或者如何从列表中提取数据向量,以便我可以运行:

barplot(graph).
Run Code Online (Sandbox Code Playgroud)

excel r bar-chart dataframe

1
推荐指数
1
解决办法
4547
查看次数

如何在chart.js中制作矩形

我试图在chart.js中放置矩形来制作上下范围/级别,就像在图像中一样

在此处输入图片说明

虽然我可以通过在这个例子中画两条线来实现

var ctx = document.querySelector("#myChart").getContext('2d');
Chart.pluginService.register({
    afterDraw: function(chart) {
        if (typeof chart.config.options.lineAt != 'undefined') {
        	var lineAt = chart.config.options.lineAt;
            var ctxPlugin = chart.chart.ctx;
            
            var xAxe = chart.scales[chart.config.options.scales.xAxes[0].id];
            
            ctxPlugin.strokeStyle = "green";
        	ctxPlugin.beginPath();
            lineAt = 102;
            ctxPlugin.moveTo(xAxe.left, lineAt);
            ctxPlugin.lineTo(xAxe.right, lineAt);
            ctxPlugin.moveTo(xAxe.left, lineAt-33);
            ctxPlugin.lineTo(xAxe.right, lineAt-33);
            ctxPlugin.stroke();
        }
    }
});
var myChart = new Chart(ctx, {
          type: 'bar',
          data: {
              labels: ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Nov","Dec"],
              datasets: [{
                  label: 'Findings',
                  data: [0,45],
                  backgroundColor: 'rgba(54, 162, 235, 0.2)',
                  borderColor: 'rgba(54, 162, 235, 1)',
                  borderWidth: 1
              }]
          },
          options: …
Run Code Online (Sandbox Code Playgroud)

javascript jquery charts bar-chart chart.js

1
推荐指数
1
解决办法
6076
查看次数

如何在 ggplot2 中显示 Y 轴上的出现次数

我正在尝试使用 ggplot2 在 R 中制作一个分组条形图。我为此使用的代码是:

ggplot(loanData, aes(factor(loanData$saving_status), <Y AXIS ATTRIBUTE>, fill = loanData$class)) + geom_bar(stat="identity", position = "dodge") + scale_fill_brewer(palette = "Set1")
Run Code Online (Sandbox Code Playgroud)

但是,我不知道我应该用什么替换“Y AXIS ATTRIBUTE”以指示图表上Saving_statusclass属性值的出现次数。我想我需要的是使用某种方法计算这些出现次数并将结果放在那里?

基本上,我正在寻找的是类似于这个问题的答案,但我的表中没有价值,我可以像在该示例中使用“物种”一样使用它。谢谢

r graph bar-chart ggplot2

1
推荐指数
1
解决办法
4934
查看次数