我有一个德尔福柏林程序显示条形图,我想在每个条形图上方显示一个标签显示数值,另一个标签下方的标签显示描述,如一周中的某一天。如果我使用2个按钮,显示其中一个,我可以得到两个,但有没有办法在条形图上显示2个标签,一个在条形图上方,一个在下方?在此程序中,button2显示上方的标签和下方的轴,但它为每个条显示两次相同的信息。
我试图在之前的帖子中提出这个问题,但是在回复中没有足够的空间来添加足够的细节。
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
chart1.series[0].clear;
for i := 1 to 4 do
chart1.series[0].add(100+5*i,'',clred);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i : integer;
begin
chart1.series[0].clear;
day[1] := 'Sun';
day[2] := 'Mon';
day[3] := 'Tues';
day[4] := 'Wed';
for i := 1 to 4 do
chart1.series[0].add(100+5*i,day[i],clred);
end;
答案 0 :(得分:1)
默认情况下,系列标记设置为smsLabelOrValue
,轴标签样式设置为talAuto
;这将显示点标签(如果存在)或点值,如果该点没有标签。
要更改该行为,您可以更改这些属性:
系列标记样式:
Chart1.Series[0].Marks.Style:=smsValue;
可能的值:
smsValue, { 1234 }
smsPercent, { 12 % }
smsLabel, { Cars } // If label is empty, no mark will be displayed
smsLabelPercent, { Cars 12 % }
smsLabelValue, { Cars 1234 }
smsLegend, { (Legend.Style) }
smsPercentTotal, { 12 % of 1234 }
smsLabelPercentTotal, { Cars 12 % of 1234 }
smsXValue, { 1..2..3.. or 21/6/2014 }
smsXY, { 123 456 }
smsSeriesTitle, { Series1 }
smsPointIndex, { 1..2..3... }
smsPercentRelative, { 100%..90%..120%... }
smsLabelPercentValue, { Cars 12 % 1234 }
smsLabelOrValue
轴标签样式:
Chart1.Axes.Bottom.LabelStyle:=talValue; //talAuto, talNone, talValue, talMark, talText, talPointValue
在您的情况下,将其添加到Button2Click中的代码中会得到所需的结果:
Chart1.Series[0].Marks.Style:=smsValue;
答案 1 :(得分:0)
Yeray的回答是解决方案。在这里重复:Chart1.Series [0] .Marks.Style:= smsValue;