w/jqplot是否可以显示"覆盖"条形图的折线图?
我已将一个系列添加到堆叠条形图并将渲染器更改为$ .jqplot.LineRender.这显示为一条线,但它会被添加到堆叠的金额中.
我正在使用JQPlot,我在一个HTML页面上有很多图表.每个图表都有相同的图例.
我的问题是:是否有可能在HTML页面或其自己的div中显示一个完全位于图形之外的图例?
我正在使用jqPlot来渲染条形图,我希望做一些相当简单的事情,但我不确定图书馆是否有这个选项.
我有这样的图形,其中y轴上的最大可能值可以是42.

假设对于一个案例,我对任何一个柱的最高值是14,那么图形将呈现为最多只显示14个.

但是,我想要这样,在所有情况下,我可以看到42的上限呈现.
这就是我现在所拥有的:
var plot3 = $.jqplot('chart3', [line1], {
animate: true,
animateReplot: true,
seriesDefaults: {renderer: $.jqplot.BarRenderer},
series:[{
pointLabels:{
show: true,
labels:[depression, anxiety, stress]
},
rendererOptions: {
animation: {
speed: 3500
},
barWidth: 50,
barPadding: -15,
barMargin: 0,
varyBarColor : true,
highlightMouseOver: false
}
}],
axes: {
xaxis: {
renderer:$.jqplot.CategoryAxisRenderer
}
},
canvasOverlay: {
show: true,
objects: [{
horizontalLine: {
y: 42,
lineWidth: 3,
color: 'rgb(255,0,0)',
shadow: true,
xOffset: 0
}
}]
}
});
plot3.replot( { resetAxes: …Run Code Online (Sandbox Code Playgroud) 我正在使用jqPlot根据Web方法的数据生成堆积条形图.
图表成功呈现,但为空白.当我将pointLabels设置为'true'时,它们会出现在图表左侧的混乱中.我猜测堆叠的条形图也是在图表外渲染,但我不明白为什么.
有人可以解释一下如何解决这个问题吗?
这是web方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<dataPoint> getPartnerOrderVolumes()
{
List<dataPoint> p = new List<dataPoint>();
DataTable dt = new DataTable();
chart jep = new chart(5);
foreach (chartData cd in jep.lstChartData)
{
dt = cd.GetData();
}
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
dataPoint dp = new dataPoint();
dp.x1Value = row[2].ToString();
dp.y1Value = row[3].ToString();
dp.y2Value = row[4].ToString();
p.Add(dp);
}
}
return p;
}
Run Code Online (Sandbox Code Playgroud)
这是web方法使用的dataPoint类:
public class dataPoint
{
public string x1Value { get; set; } …Run Code Online (Sandbox Code Playgroud) 有没有人知道如何使"y轴"值从Jqplot中的0开始....默认情况下,它以负值开始,例如:-500,0,500,1000等等....请帮助
我正在使用jqplot,它默认获得标记,如下所示:

我怎么办才能.0在最后得到它?
我有javascript代码:
var plot1 = jQuery.jqplot ('chartdiv', [data],
{
seriesDefaults: {
// Make this a pie chart.
renderer: jQuery.jqplot.PieRenderer,
rendererOptions: {
// Put data labels on the pie slices.
// By default, labels show the percentage of the slice.
showDataLabels: true,
dataLabels: 'value'
}
},
legend: { show:true, location:'e'}
});
var handler = function(ev, gridpos, datapos, neighbor, plot) {
if (neighbor) {
alert('x:' + neighbor.data[0] + ' y:' + neighbor.data[1]);
}
};
$.jqplot.eventListenerHooks.push(['jqplotClick', handler]);
Run Code Online (Sandbox Code Playgroud)
现在通过使用dataLabels:'value'我能够显示值,但显示的值是51而不是50.667.Value是舍入的.但我需要显示确切的值.如何?
我的第二个问题是,当我在图表的任何区域上有鼠标指针时,我想要显示一些东西.那将使用jqplotDataMouseOver完成但是如何使用它?在此先感谢.Plz紧急回应.
我对Web开发人员来说非常新手.我觉得令人沮丧的是选项中使用的axesRendererDefaults选项jqplot.
根据这个链接:
指定刻度线在轴(X或Y)上的显示方式将由该formatString: ''选项指定的内容决定.
有哪些选项可供formatString选择?在jqplot页面上给出的教程中,它们传递选项,例如:%d,$%d和%n.如何找到可用选项的完整列表?
这些格式选项是否jqplot与实际属性相分离jQuery?
我使用PrimeFaces 3.4.1绘制时间图(x轴上的日期,y轴上的int值).
目前我有类似的东西:
xhtml:
<p:lineChart id="timeChart" value="#{myGraphBean.model}" legendPosition="e" title="Time Chart" minY="0" maxY="25" style="height:300px"/>
Run Code Online (Sandbox Code Playgroud)
Java bean:
private final static int MAX_VALUE = 20;
private final static int NUMBER_OF_POINTS = 20;
private final static DateFormat dateFormat = new SimpleDateFormat("dd-MM-yy");
private void createLinearModel() {
model = new CartesianChartModel();
Calendar day = Calendar.getInstance();
day.set(Calendar.HOUR_OF_DAY, 0);
day.set(Calendar.MINUTE, 0);
day.set(Calendar.SECOND, 0);
day.set(Calendar.MILLISECOND, 0);
LineChartSeries series = new LineChartSeries();
series.setLabel("My series");
for (int i = 0; i < NUMBER_OF_POINTS; i++) {
series.set(dateFormat.format(day.getTime()), getRandomValue());
day.add(Calendar.DAY_OF_MONTH, 1); …Run Code Online (Sandbox Code Playgroud) 背景
我有一个使用jqplot选项扩展的primefaces折线图(x上的日期,y上的整数> = 0):
function extender() {
this.cfg.axes = {
xaxis : {
renderer : $.jqplot.DateAxisRenderer,
rendererOptions : {
tickRenderer:$.jqplot.CanvasAxisTickRenderer
},
tickOptions : {
fontSize:'10pt',
fontFamily:'Tahoma',
angle:-40,
formatString:'%b-%y'
},
tickInterval:'2592000000'
},
yaxis : {
min: 0,
rendererOptions : {
tickRenderer:$.jqplot.CanvasAxisTickRenderer,
},
tickOptions: {
fontSize:'10pt',
fontFamily:'Tahoma',
angle:0,
formatString: '%d'
}
},
};
this.cfg.axes.xaxis.ticks = this.cfg.categories;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用jqplot扩展器在x轴上有自定义日期间隔,这是正常工作:

问题
当我min: 0在y轴上使用该选项时,数字的格式变得非常时髦,特别是当有小值时:

请注意,minYprimefaces中的属性不起作用(可能是因为扩展程序覆盖了它)
为了解决这个问题,我使用了formatString: %d.它有效,但它会产生滴答数量的问题:

正如您在屏幕截图中看到的那样,值1的行数次.
题
如何确保我在y轴上没有多次获得相同的值?
我真的不能有一个静态的刻度数,因为当数据变大时(比如大约100),我确实想要y轴上的几个值(例如20,40等...)