我有下表:
song_ids track_id play_count_sum user_id_count genre_id
SOAAAMT12AB018C9C4 TRYIOYF12903CD4E73 1 1 Pop_Rock
SOAAAXN12A8C13A70C TRXWDIG128F4274BF1 5 1 Latin
SOAABLP12A6D4F8861 TRXOSZE128F148A158 1 1 Pop_Rock
SOAABRT12A6D4F7940 TRUGBDI128F14548CD 13 2 International
SOAABVA12AC3DF673F TRXVIGQ12903CE7F6E 4 3 Pop_Rock
Run Code Online (Sandbox Code Playgroud)
我想通过genre_id创建条形图,但是失败了,因为它不是数值.
import matplotlib.pyplot as plt
import numpy as np
f=df.plot(df[['genre_id']].grouby(),df[['play_count_sum']].sum())
Run Code Online (Sandbox Code Playgroud) 我在使用 BarData 时遇到问题。我的代码在以下位置显示错误:
BarData Data = new BarData(Date,depenses);
Run Code Online (Sandbox Code Playgroud)
我只想在每个条形下显示日期。
我的代码是..
public class statistique extends AppCompatActivity {
BarChart barChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_statistique);
barChart = (BarChart)findViewById(R.id.stats_chart);
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(4f, 0));
entries.add(new BarEntry(8f, 1));
entries.add(new BarEntry(6f, 2));
entries.add(new BarEntry(12f, 3));
entries.add(new BarEntry(18f, 4));
entries.add(new BarEntry(9f, 5));
BarDataSet depenses = new BarDataSet(entries, "depenses");
ArrayList<String> Date = new ArrayList<>();
Date.add("2/7/2016");
Date.add("3/7/2016");
Date.add("5/7/2016");
Date.add("6/7/2016");
Date.add("23/7/2016");
Date.add("30/7/2016");
BarData Data = new BarData(Date,depenses);
barChart.setData(Data);
barChart.setTouchEnabled(true);
barChart.setDragEnabled(true);
barChart.setScaleEnabled(true);
barChart.animateXY(3000, 3000); …Run Code Online (Sandbox Code Playgroud) 想象一下,你有一个像这样的简单数据集:
ive
region Edad
1 Española 23
2 Española 37
3 Española 40
4 Española 21
5 Africana 29
6 Española 42
7 Europea 29
8 Española 25
9 Española 32
10 Española 20
Run Code Online (Sandbox Code Playgroud)
我有兴趣为region按颜色分类的变量执行条形图。所以我创建了以下代码:
g1 <- ggplot(ive, aes(x=reorder(ive$region, -table(ive$region)[ive$region])))
g1 + geom_bar(aes(fill=ive$region)) + geom_text(stat='count',aes(label=..count..),vjust=-0.7) + xlab("")
Run Code Online (Sandbox Code Playgroud)
但是图例显示ive$region,我希望它显示自定义标题。
我几乎可以肯定这是一个愚蠢的问题,但我一直在尝试解决它 2 天,但我没有找到解决方法。
谢谢你,阿尔瓦罗
我想将表格绘制为堆积的条形图,并用百分比标记条形。这是一个例子:
data <- matrix(c(34, 66, 22, 78), ncol = 2)
data <- as.table(data)
colnames(data) <- c("shop1", "shop2")
rownames(data) <- c("prod1", "prod2")
library(reshape2)
data_m <- melt(data, varnames = c("Product", "Shop"), id.vars = "Product")
library(scales)
library(ggplot2)
ggplot(data_m, aes(x = Shop, y = value, fill = Product)) +
geom_bar(position = "fill", stat = "identity") +
scale_y_continuous(labels = percent_format()) +
labs(x = "", y = "")
Run Code Online (Sandbox Code Playgroud)
我试图用添加标签
geom_text(data = data_m, aes(x = Shop, y = value,
label = paste0((value/100) * 100,"%")), size=4)
Run Code Online (Sandbox Code Playgroud)
编辑:随着JanLauGe的答案,我得到 …
我在构建条形图时遇到了一些问题。我是第一次学习 d3.js,并且作为一个一直使用 PHP/MySQL 的人,我不需要学习 javascript。结果,我有点挣扎。
我的问题本质上更具概念性。假设在条形图中,Y 轴包含在 ag 元素中,而条形包含在另一个元素中,那么我如何确保我的轴根据所提供的数据采用动态宽度?
我设法生成了一个条形图,效果很好,但填充是固定数字(假设为 50px)。现在效果很好,因为我的数字从 0 到 50,所以一切都合适。如果我得到数万亿美元会怎样?轴的宽度会改变,但我的填充仍然是 50px,这意味着它会裁剪我的内容。
说到这里,“约定”是什么?有什么技巧吗?
谢谢
gnew = ggplot(data= got, aes(x= got$attacker_king, fill= got$attacker_outcome))+
geom_bar() +
geom_text(stat = "count", aes(label =..count..), vjust = -.5)+
scale_y_continuous(limits = c(0,20)) # plotting the stacked ggplot #this works
Run Code Online (Sandbox Code Playgroud)
got = ddply(got, .(got$attacker_king),
transform, pos = cumsum(..count..)- (0.5 *..count..)) # positioning labels shows error
#This shows error as "Error in eval(expr, envir, enclos) : object '..count..' not found"
Please help!
Run Code Online (Sandbox Code Playgroud)
我正在寻找所需的输出,如下所示:

series.dataLabels.align:left/right`没有剪切它.它只会出现在每个栏的蓝色矩形之后而不是最右边,这不是我想要的.我也看了一下highcharts api,我无法找到完成工作的图表选项.提前致谢.
My current chart options:
var options = {
chart: {
renderTo: 'container',
type: 'bar',
},
credits: {
enabled: false
},
colors: ['#024a7a'],
title:{
text:null
},
plotOptions: {
bar: {
animation: false
},
series: {
showInLegend: false,
states: {
hover: {
enabled:false
}
}
}
},
tooltip: {
enabled: false
},
xAxis: [{
categories: ['SAC 1', 'SAC 2', 'SAC 3'],
lineWidth: 0,
minorGridLineWidth: 0,
lineColor: 'transparent',
minorTickLength: 0,
tickLength: 0
}],
yAxis: [{
gridLineWidth: 0,
labels: {
enabled: …Run Code Online (Sandbox Code Playgroud) 我有以下数据框
Class Age Percentage
0 2004 3 43.491170
1 2004 2 29.616607
2 2004 4 13.838925
3 2004 6 10.049712
4 2004 5 2.637445
5 2004 1 0.366142
6 2005 2 51.267369
7 2005 3 19.589268
8 2005 6 13.730432
9 2005 4 11.155305
10 2005 5 3.343524
11 2005 1 0.913590
12 2005 9 0.000511
Run Code Online (Sandbox Code Playgroud)
我想使用 seaborn 绘制条形图,其中 y 轴是“百分比”,x 轴是“类别”,并使用“年龄”列标记它们。我还想按降序排列条形,即从较大的条形到较小的条形。
为了做到这一点,我想到了以下几点:我将hue_order根据“百分比”变量的顺序更改参数。例如,如果我按降序对 'Percentage' 列进行排序Class == 2004,则hue_order = [3, 2, 4, 6, 5, 1]. …
我使用 ggplot2 创建了一个条形图,并用它们描绘的值标记了条形图。由于这些值相当大,我想使用千位分隔符。但我想使用倒逗号而不是普通逗号(我已经找到了如何使用逗号分隔)。
我已经尝试以同样的方式来改变 scale_y_continuous 中的千位分隔符,但它没有用。
我还读到我应该使用:
df <- df %>%
mutate(label.income = gsub("\\,","'", scales::comma(income)))
Run Code Online (Sandbox Code Playgroud)
但是后来我总是收到以下错误消息:“使用方法中的错误(“mutate_”):“mutate_”没有适用的方法应用于“函数”类的对象”
这是我正在使用的数据和代码:
set1 <- read.table(text = "group income
group1 30500
group2 29000
group3 60500
group4 18000", header=TRUE)
library(ggplot2)
ggplot(set1, aes(x=group, y=income))+
theme_bw()+
geom_bar(stat = 'identity', position = "dodge", fill="#13449f")+
geom_text(aes(label = income), position = position_dodge(0.9),
vjust=1.3, colour = "white", size=5)+
scale_y_continuous(breaks = seq(0, 70000, by = 10000), limits = c(0,70000), labels=function(income) format(income, big.mark = "'", scientific = FALSE))
Run Code Online (Sandbox Code Playgroud)
如何在条形标签上使用与 y 轴上相同的千位分隔符?
我正在尝试在闪亮的应用程序中构建反应式条形图。我有一个名为 stats 的小表
Team wins loss draws
Arsenal 533 120 256
Chelsea 489 201 153
Liverpool 584 186 246
Run Code Online (Sandbox Code Playgroud)
我想构建一个条形图,根据所选团队显示胜利、失败和平局。我无法为此创建反应性条形图。有人可以为此建议一个代码或指导我正确的方向吗?