我有一个jqplot条形图,我希望在用户更改下拉列表中的值时更改图表数据.这是有效的,但问题是每次用户更改值时条形图重绘,一个在另一个上.
如何更新或重新加载条形图而不再绘制整个图形?是否有任何财产价值?
图表数据根据ajax调用而变化:
$.ajax({
url: '/Home/ChartData',
type: 'GET',
data: { Id: Id },
dataType: 'json',
success: function (data) {
$.jqplot('chartDiv', [a, b], CreateBarChartOptions(xAxis));
}});
function CreateBarChartOptions(xAxis) {
var optionsObj = {
title: 'Stat',
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks: xAxis
},
yaxis: { min: 0 }
},
series: [{ label: 'A' }, { label: 'B'}],
seriesDefaults: {
shadow: true,
renderer: $.jqplot.BarRenderer,
rendererOptions: {
barPadding: 8,
barMargin: 10
}
},
};
return optionsObj;
}
Run Code Online (Sandbox Code Playgroud)
回复将受到高度赞赏.谢谢.
TL'DR,垂直条形图以传统方式显示 - 事物从左到右排列.然而,当它被转换为(从水平条形图bar来barh),一切都颠倒.即,对于分组条形图,不仅分组条的顺序是错误的,每个组的顺序也是错误的.
例如,来自http://dwheelerau.com/2014/05/28/pandas-data-analysis-new-zealanders-and-their-sheep/的图表
如果仔细观察,您会发现条形图和图例的顺序相反 - 牛肉在图例的顶部显示,但在图表的底部显示.
作为最简单的演示,我改变了kind='bar',对kind='barh',
从该图
https://plot.ly/pandas/bar-charts/#pandas-grouped-bar-chart
,结果如下:
https://plot.ly/7/ 〜XPT /
即,水平分组条形图中的条形图被颠倒排列.
怎么解决?
编辑: @Ajean,它实际上不仅是分组栏的顺序错误,每个组的顺序也是错误的.从图中matplotlib /大熊猫条形图(标签,蜱,等)的简单的定制显示它清楚:
我们可以看到订单也是非常规的,因为人们会期望图表是自上而下的,顶部是"AAA",而不是底部.
如果您搜索"Excel颠倒",您会发现人们在Excel中的所有地方都在抱怨这一点.Microsoft Excel有一个修复它,Matplotlib/Panda/Searborn/Ploty /等有没有修复它?
道歉,但我是Flot的新手.
我想在水平条形图中显示我的数据而不是Flot似乎默认的垂直条形图.
是否可以在Flot中执行此操作,如果是,我该如何操作?
我正在使用Google的javascript可视化库生成一个BarChart.我想使图表中的条形图比现在更宽,但我在文档中找不到任何显示如何配置每个数据集的条形宽度的内容.
有帮助吗?
我有一个这样的数据数组:
var data = [{"Alphabet_Type":"a"}, {"Alphabet_Type":"b"}, {"Alphabet_Type":"a"}];
Run Code Online (Sandbox Code Playgroud)
我在用:
我想创建一个条形图:
问题:如何在x轴上绘制带有有序刻度的条形图?
我的代码:
var data = [{"Alphabet_Type":"a"}, {"Alphabet_Type":"b"}, {"Alphabet_Type":"a"}];
var Filter = crossfilter(data);
var Dimension = Filter.dimension(function (d) { return d.Alphabet_Type; });
var Group = Dimension.group();
dc.barChart("#bar-chart")
.width(800)
.height(275)
.transitionDuration(0)
.margins({ top: 10, right: 50, bottom: 30, left: 40 })
.dimension(Dimension)
.group(Group)
.elasticY(false)
.elasticX(false)
.x(d3.scale.linear().domain([-1, 10]))
.y(d3.scale.linear().domain([0, 5]))
.centerBar(true)
.renderHorizontalGridLines(true)
.renderVerticalGridLines(true)
.brushOn(false);
Run Code Online (Sandbox Code Playgroud)
最后,我有另一个问题,那Alphabet_Type就是没有可预测的值.所以我需要获取Alphabet_Typevia crossfilter.js的值并将这些值合并到域中.我怎样才能做到这一点?
我刚刚开始使用Bokeh.下面我创建一些用于rect图的 args .
x_length = var_results.index * 5.5
Run Code Online (Sandbox Code Playgroud)
将指数乘以5.5可以让我在标签之间留出更多空间.
names = var_results.Feature.tolist()
y_length = var_results.Variance
y_center = var_results.Variance/2
Run Code Online (Sandbox Code Playgroud)
var_results是一个Pandas数据帧,具有典型的,顺序的,非重复索引.var_results还有一个列Features是非重复名称的字符串,最后它有一个Variancedtype float 的列.
r = figure(x_range = names,
y_range = (-0.05,.3),
active_scroll = 'wheel_zoom',
x_axis_label = 'Features',
y_axis_label = 'Variance')
r.rect(x_length,
y_center,
width=1,
height=y_length,
color = "#ff1200")
output_notebook()
show(r)
Run Code Online (Sandbox Code Playgroud)
我基本上是用矩形制作条形图.Bokeh似乎非常可定制.但是我的图表在边缘看起来很粗糙.
正如您所看到的,在图表下方和X轴标题"特征"上方有一个丑陋的污迹.这是标签标题(技术上是矩形标题).如何为标签创建空间并将其旋转到45度,以便它们可读,而不仅仅是重叠的混乱?
有没有办法调整条形图中条形的宽度?
我使用以下代码创建我的图表.
final JFreeChart chart = ChartFactory.createBarChart("Report", // chart title
"Date", // domain axis label
"Number", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips?
false // URLs?
);
Run Code Online (Sandbox Code Playgroud) 这是最初在这里提出的问题的重复:指示条形图中的统计上显着的差异但是要求R而不是python.
我的问题很简单.我想在R中生成条形图,如果可能的话使用ggplot2,指示不同条形之间的显着差异,例如生成这样的东西.我有一个搜索,但找不到另一个问题完全相同的问题.

我想使用ggplot2为地图上的每个位置生成一个条形图,就像xingmowang使用基本图形和许多包一样:
http://nzprimarysectortrade.wordpress.com/2011/10/02/let-r-fly-visualizing-export-data-using-r/

这与在图中嵌入微型图有关.
目前,我能做的最好的事情是在抖动的点图中将值与点大小匹配:
require(ggplot2)
require(maps)
#Get world map info
world_map <- map_data("world")
#Creat a base plot
p <- ggplot() + coord_fixed()
#Add map to base plot
base_world <- p + geom_polygon(data=world_map,
aes(x=long,
y=lat,
group=group))
#Create example data
geo_data <- data.frame(long=c(20,20,100,100,20,20,100,100),
lat=c(0,0,0,0,0,0,0,0),
value=c(10,30,40,50,20,20,100,100),
Facet=rep(c("Facet_1", "Facet_2"), 4),
colour=rep(c("colour_1", "colour_2"), each=4))
#Creat an example plot
map_with_jitter <- base_world+geom_point(data=geo_data,
aes(x=long,
y=lat,
colour=colour,
size=value),
position="jitter",
alpha=I(0.5))
#Add faceting
map_with_jitter <- map_with_jitter + facet_wrap(~Facet)
map_with_jitter <- map_with_jitter + theme(legend.position="none")
print(map_with_jitter)
Run Code Online (Sandbox Code Playgroud)

有一个不优雅的解决方法:
subset_data <- …Run Code Online (Sandbox Code Playgroud) 我有double-y-axis图表制作Excel.在Excel中,它只需要基本技能.我想做的是使用ggplot2库复制此图表R.
我已经这样做了,但我需要绘制Response 2nd-y-axis.
我附上了我用过的可重现的代码:
#Data generation
Year <- c(2014, 2015, 2016)
Response <- c(1000, 1100, 1200)
Rate <- c(0.75, 0.42, 0.80)
df <- data.frame(Year, Response, Rate)
#Chart
library(ggplot2)
ggplot(df) +
geom_bar(aes(x=Year, y=Response),stat="identity", fill="tan1", colour="sienna3")+
geom_line(aes(x=Year, y=Rate),stat="identity")+
geom_text(aes(label=Rate, x=Year, y=Rate), colour="black")+
geom_text(aes(label=Response, x=Year, y=0.9*Response), colour="black")
Run Code Online (Sandbox Code Playgroud)