我有一个 Pandas 数据集,名为titanic我正在绘制条形图,如 Seaborn 官方文档中所述,使用以下代码:
import seaborn as sns
titanic = sns.load_dataset("titanic")
sns.catplot(x="sex", y="survived", hue="class", kind="bar", data=titanic)
Run Code Online (Sandbox Code Playgroud)
这会产生以下图:
如您所见,色调由 表示class。如何手动选择色调顺序以便反转当前色调顺序?
我使用matplotlib生成条形图,看起来堆积条形图有一个错误.每个垂直堆栈的总和应为100.但是,对于X-AXIS刻度65,70,75和80,我们得到完全任意的结果,这没有任何意义.我不明白是什么问题.请在下面找到MWE.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
header = ['a','b','c','d']
dataset= [('60.0', '65.0', '70.0', '75.0', '80.0', '85.0', '90.0', '95.0', '100.0', '105.0', '110.0', '115.0', '120.0', '125.0', '130.0', '135.0', '140.0', '145.0', '150.0', '155.0', '160.0', '165.0', '170.0', '175.0', '180.0', '185.0', '190.0', '195.0', '200.0'), (0.0, 25.0, 48.93617021276596, 83.01886792452831, 66.66666666666666, 66.66666666666666, 70.96774193548387, 84.61538461538461, 93.33333333333333, 85.0, 92.85714285714286, 93.75, 95.0, 100.0, 100.0, 100.0, 100.0, 80.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0), (0.0, 50.0, 36.17021276595745, 11.320754716981133, 26.666666666666668, 33.33333333333333, 29.03225806451613, …Run Code Online (Sandbox Code Playgroud) 在条形图中,是否可以使标签与条形图平行?
假设我们有一个名为"data"的数据框.
Page PV UniquePgv
1 /photos/upcoming 5295 2733
2 / 4821 2996
3 /search 1201 605
4 /my_photos 827 340
5 /photos/circle 732 482
Run Code Online (Sandbox Code Playgroud)
我想用Page列作为标签来制作PV的条形图.
names <-data$Page
barplot(data$PV,main="Page Views", horiz=TRUE,names.arg=names)
Run Code Online (Sandbox Code Playgroud)
哪个产生:

每个栏的名称是垂直的,而栏是水平的.
如何使标签水平显示并与条形平行?如果不可能,我愿意接受有关绘制此信息的其他方法的建议.
我有以下数据框:
test2 <- data.frame(groups = c(rep("group1",4), rep("group2",4)),
X2 = c(rnorm(4), rnorm(4)) ,
label = c(rep(1,2),rep(2,2),rep(1,2),rep(2,2)))
Run Code Online (Sandbox Code Playgroud)
我正在使用以下方法绘制每组每个标签的条形图:
ggplot(test2, aes(label, X2, fill=as.factor(groups))) +
geom_bar(position="dodge", stat="identity")
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法找到一个stat="mean"所以我可以在每个条形图而不是身份上绘制手段.
谢谢你的帮助.
我试图绘制好的stacked percent barchart使用ggplot2.我已经阅读了一些材料,几乎可以设法绘制,我想要什么.另外,我附上材料,它可能在一个地方有用:
如何在不创建摘要数据框的情况下在ggplot2中标记堆积条形图?
R堆积百分比条形图,包含二元因子和标签的百分比(使用ggplot)
我的问题是我不能放在labels我想要的地方- 在酒吧中间.
您可以在上面的图片中看到问题 - 标签看起来很糟糕,并且彼此重叠.
我现在正在寻找的是:
如何在酒吧(区域)的中间放置标签
如何绘制不是所有标签,但例如哪些标签超过10%?
如何解决重叠问题?
对于Q 1.@MikeWise建议可能的解决方案.但是,我仍然无法处理这个问题.
另外,我附上了可重复的例子,我是如何绘制这个grahp的.
library('plyr')
library('ggplot2')
library('scales')
set.seed(1992)
n=68
Category <- sample(c("Black", "Red", "Blue", "Cyna", "Purple"), n, replace = TRUE, prob = NULL)
Brand <- sample("Brand", n, replace = TRUE, prob = NULL)
Brand <- paste0(Brand, sample(1:5, n, replace = TRUE, prob = NULL))
USD <- abs(rnorm(n))*100
df <- data.frame(Category, Brand, USD)
# Calculate the percentages …Run Code Online (Sandbox Code Playgroud) 这可能是一个微不足道的问题,但我试图用matplotlib和x轴上的旋转文本绘制条形图.我正在使用的代码如下所示:
fig = plt.figure()
x_labels_list = []
for i in range(0, pow(2, N)):
x_labels_list.append(str(f(i))) # The function f() converts i to a binary string
ax = plt.subplot(111)
width = 1.0
bins = map(lambda x: x-width, range(1,pow(2,N)+1))
ax.bar(bins, my_data, width=width)
ax.set_xticks(map(lambda x: x-width/2, range(1,pow(2,N)+1)))
ax.set_xticklabels(x_labels_list, rotation=90, rotation_mode="anchor", ha="right")
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是我在x轴的右边获得了一个恼人的空白区域,如下图中的红色椭圆所示:

你知道我怎么能把它删除吗?提前致谢!
我有一个简单的结果表,我想在gnuplot中绘制为聚类直方图.数据集具有网页的内容类型类别以及两列中的相应百分比份额.我有两个浏览器.例如,
For IE,
Content Share
Video 30%
Audio 10%
Flash 25%
HTML 20%
Javascript 15%
For Chrome,
Content Share
Video 20%
Audio 5%
Flash 35%
HTML 30%
Javascript 10%
Run Code Online (Sandbox Code Playgroud)
现在我想将这两个数据与x轴中的内容类型以及带有图例的y轴上的相应共享一起绘制.我该怎么做呢?
我正在尝试使用d3.js创建动画条形图.我希望条形图像这个例子http://nvd3.com/ghpages/multiBar.html一个一个地出现.我能够创建一个类似的行为但是动作从条形的高度开始将条形建立在x轴上,但是我希望动画从x轴开始并像示例那样转到条形的高度.
很多我的代码的简化版本:http: //jsfiddle.net/gorkem/ECRMd/
任何帮助将非常感激
我有一个数据模板
<Window.Resources>
<DataTemplate x:Key="BarChartItemsTemplate">
<Border Width="385" Height="50">
<Grid>
<Rectangle Name="rectangleBarChart" Fill="MediumOrchid" StrokeThickness="2" Height="40" Width="{Binding}" HorizontalAlignment="Right" VerticalAlignment="Bottom">
<Rectangle.LayoutTransform>
<ScaleTransform ScaleX="4"/>
</Rectangle.LayoutTransform>
</Rectangle>
<TextBlock Margin="14" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Center" Text="{Binding}">
<TextBlock.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="90"/>
<ScaleTransform ScaleX="-1" ScaleY="1"/>
</TransformGroup>
</TextBlock.LayoutTransform>
</TextBlock>
</Grid>
</Border>
</DataTemplate>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
我在表格上有一个按钮.我需要从dataTemplate更改矩形(scaleTransform).我如何访问上述按钮的Button_Click事件中的'rectangleBarChart'元素?
我正在尝试创建一个堆积条形图,但我无法定位图例,以便它不会与任何条形图重叠.我试过调整边距,设置xlim,使用单独的legend语句并在此搜索,都没有成功.实际上,示例数据集的代码来自StackOverflow.我使用基础R并且更喜欢基础R解决方案.谢谢你的任何建议.
setwd('c:/users/mmiller21/simple R programs/')
jpeg(filename = "barplot.jpeg")
set.seed(1234)
x <- replicate(8, round(10 * rexp(2000, 10)))
y <- apply(x, 2, function(column) table(factor(column, levels = 0:9)))
colnames(y) <- paste('A', seq(1,ncol(y),1), sep='')
rownames(y) <- paste('R', seq(1,nrow(y),1), sep='')
y
# A1 A2 A3 A4 A5 A6 A7 A8
# R1 769 800 790 806 792 787 834 801
# R2 779 733 793 757 786 744 731 776
# R3 284 297 278 272 263 301 280 275
# R4 …Run Code Online (Sandbox Code Playgroud)