返回列表 上一主題 發帖

[發問] 請問如何使圖表上在0點上下的指標顏色分別以不同顏色標示?

回復 1# c_c_lai
要把大於0和小於0的指標量 在Chart中用不同的顏色表示 可用InvertColor 來完成
假設你的指標序列是SeriesCollection(2)
Code 可以如下 :
ActiveChart.SeriesCollection(2).InvertIfNegative = True
ActiveChart.SeriesCollection(2).InvertColor = RGB(n1, n2,n3)
Alex

TOP

回復 9# c_c_lai
sample已寄給你
除了零軸上下指標顏色不同外
你另外問的繪圖資料來源不寫死的情形
裡面也有
Alex

TOP

回復 12# peter460191

Put_Call_Ratio.zip (85.48 KB)
法意部落格裡每日指標追蹤裡有一個Put_call Ratio
我嘗試用Excel VBA來製作它
Put_call ratio 如果大於1 則長條圖位於x軸上方,顯示為藍色,
Put_call ratio 如果小於1 則長條圖位於x軸下方, 顯示為紅色
Alex

TOP

本帖最後由 alexliou 於 2012-5-12 06:28 編輯

回復 14# f3202
InvertColor是Series 物件在 Excel  2010版本中 的新增屬性
Excel 2007無法使用
Alex

TOP

本帖最後由 alexliou 於 2012-5-13 09:07 編輯

回復 14# f3202
在程式中處理零軸上下顏色不同,是靠以下這兩行Code
  .SeriesCollection(2).InvertIfNegative = True
  .SeriesCollection(2).InvertColor = RGB(255, 124, 128)
其中InvertIfNegative屬性 設為True, 會讓Excel以補色顯示對應於負數之資料點中的圖樣
InvertColor 則是去設定數列中負資料點的填滿色彩
雖然InvertColor 是Excel 2010的新功能
但 InvertIfNegative 在Excel 2010以前就有了
所以只要 Mark掉有InverColor那一行Code
程式仍可運作, 只是色彩無法讓User自行控制
所以負數的資料點都會呈現黑色 (美觀上遜色了點)
Alex

TOP

本帖最後由 alexliou 於 2012-5-13 09:15 編輯

回復 16# f3202
折線圖並沒直接的辦法來設定不同的顏色
也就是說  InvertIfNegative 與折線圖合用時並不會發揮作用
(線段是連接兩點, InvertIfNegtative 是針對"點")

若要處理折線圖在不同的範圍(可以是X軸, 也可以是不同的Y值)顯示不同的顏色
一般解法是把一個資料數列根據範圍拆成不同的數列
每個序列賦予不同的顏色

PS. 以上說得很簡單 但Implement起來會有新的問題發生
假設第一點的Y值是 10, 第二點的Y值是-5
你想要在0以上的線段和0以下的線段呈現不同的顏色
這樣必需人為插入一點0
如有興趣  可以再討論
Alex

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題