module CalcChartDoc
Constants
- ChartTemplateArea
エリアグラフ¶ ↑
Role categories values-y
- ChartTemplateBar
棒グラフ¶ ↑
Role categories values-y
- ChartTemplateBubble
バブルチャート¶ ↑
- ChartTemplateDonut
ドーナツグラフ¶ ↑
- ChartTemplateFilledNet
レーダー網(塗りつぶし)¶ ↑
- ChartTemplateLine
折れ線¶ ↑
- ChartTemplateNet
レーダー網¶ ↑
Role categories values-y
- ChartTemplatePie
円グラフ¶ ↑
Role categories values-y
- ChartTemplateScatter
散布図¶ ↑
Role categories: 系列のラベル values-x : X データ values-y: Y データ
- ChartTemplateStock
ストックチャート¶ ↑
- ChartTypeList
チャートの種類¶ ↑
チャートの種類とテンプレートの関連付け
- Graphic_Types
画像タイプ定義¶ ↑
- Max
- Min
- Role
- String
Public Instance Methods
change_Xrange(min_index,max_index,chartTypeIndex=0)
click to toggle source
X軸の範囲を変更する¶ ↑
データ配列の範囲を指定された最小値と最大値へ変更する。 _min_index_:: 最小の行番号(1始まり) _max_index_:: 最大の行番号(1始まり) _chartTypeIndex_:: チャートテンプレート配列でのインデックス、指定されない場合には 0。 ret::成功のときtrue、失敗のときfalse
# File Trail_Calc.rb, line 338 def change_Xrange(min_index,max_index,chartTypeIndex=0) min_index = min_index.to_i max_index = max_index.to_i tName = ChartTypeList[self.Diagram.getDiagramType][chartTypeIndex] ret = false if tName ret = true n = self.DataSequences.size prov = self.getDataProvider dt = [] j = 0 x_was_taken = false (1..n).each do |i| seq = self.DataSequences[i-1] role = seq.Values.Role range = seq.Values.SourceRangeRepresentation range.sub!(/(.*\$)\d+(\:.*\$)\d+/,"\\1#{min_index}\\2#{max_index}") new_seq = prov.createDataSequenceByRangeRepresentation(range) new_seq.Role = role if role == "categories" labeldSeq = $manager.createInstance("com.sun.star.chart2.data.LabeledDataSequence") labeldSeq.setValues(new_seq) dt << labeldSeq x_was_taken = true j += 1 elsif (role == "values-x") if ! x_was_taken dt[j] = $manager.createInstance("com.sun.star.chart2.data.LabeledDataSequence") dt[j].setValues(new_seq) if seq.Label label_role = seq.Label.Role label_range = seq.Label.SourceRangeRepresentation new_label_seq = prov.createDataSequenceByRangeRepresentation(label_range) new_label_seq.Role = seq.Label.Role dt[j].setLabel(new_label_seq) end x_was_taken = true j += 1 # else # print "ignore values-x\n" end else # (role == "values-y" or else ) dt[j] = $manager.createInstance("com.sun.star.chart2.data.LabeledDataSequence") dt[j].setValues(new_seq) if seq.Label label_role = seq.Label.Role label_range = seq.Label.SourceRangeRepresentation new_label_seq = prov.createDataSequenceByRangeRepresentation(label_range) new_label_seq.Role = seq.Label.Role dt[j].setLabel(new_label_seq) end j += 1 end end source = self.getUsedData source.setData(dt) tManager = self.getChartTypeManager tTemplate = tManager.createInstance(tName) tTemplate.changeDiagramData(self.Diagram.getDiagram, source, []) end ret end
get_Range(n=0)
click to toggle source
get_Xmax()
click to toggle source
get_Xmin()
click to toggle source
get_chartType()
click to toggle source
get_subtitle()
click to toggle source
get_title()
click to toggle source
save(filename)
click to toggle source
チャートの保存¶ ↑
_filename_::出力する画像ファイル名、拡張子で画像タイプを判定する。(bmp,jpg,png...)
# File Trail_Calc.rb, line 443 def save(filename) done = false if filename != '' if filename !~ /^file\:\/\/\// filename = 'file:///'+getAbsolutePath(filename) end filename =~ /\.([^\/\.\]+?)$/ ext = $1 ext.downcase! if ext t = Graphic_Types[ext] else print "画像のファイル名を指定してください\n" return false end if t == nil print "拡張子から画像タイプが判別できません。\n" return false end done = true begin f = $manager.createInstance("com.sun.star.drawing.GraphicExportFilter") f.setSourceDocument(self.getDrawPage) opt = _opts($manager,{'URL'=>filename,'MediaType'=>t}) f.filter(opt) rescue print "書き込みできませんでした。#{$!}\n" done = false end done end
set_Xmax(t)
click to toggle source
set_Xmin(t)
click to toggle source
set_subtitle(name)
click to toggle source