echarts CandlestickSeries 源码
echarts CandlestickSeries 代码
文件路径:/src/chart/candlestick/CandlestickSeries.ts
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import SeriesModel from '../../model/Series';
import {WhiskerBoxCommonMixin} from '../helper/whiskerBoxCommon';
import {
SeriesOption,
SeriesOnCartesianOptionMixin,
LayoutOrient,
ItemStyleOption,
ZRColor,
ColorString,
SeriesLabelOption,
SeriesLargeOptionMixin,
StatesOptionMixin,
SeriesEncodeOptionMixin,
DefaultEmphasisFocus,
OptionDataValue
} from '../../util/types';
import SeriesData from '../../data/SeriesData';
import Cartesian2D from '../../coord/cartesian/Cartesian2D';
import { BrushCommonSelectorsForSeries } from '../../component/brush/selector';
import { mixin } from 'zrender/src/core/util';
type CandlestickDataValue = OptionDataValue[];
interface CandlestickItemStyleOption extends ItemStyleOption {
color0?: ZRColor
borderColor0?: ColorString
borderColorDoji?: ZRColor
}
export interface CandlestickStateOption {
itemStyle?: CandlestickItemStyleOption
label?: SeriesLabelOption
}
export interface CandlestickDataItemOption
extends CandlestickStateOption, StatesOptionMixin<CandlestickStateOption, ExtraStateOption> {
value: CandlestickDataValue
}
interface ExtraStateOption {
emphasis?: {
focus?: DefaultEmphasisFocus
scale?: boolean
}
}
export interface CandlestickSeriesOption
extends SeriesOption<CandlestickStateOption, ExtraStateOption>, CandlestickStateOption,
SeriesOnCartesianOptionMixin,
SeriesLargeOptionMixin,
SeriesEncodeOptionMixin {
type?: 'candlestick'
coordinateSystem?: 'cartesian2d'
layout?: LayoutOrient
clip?: boolean
barMaxWidth?: number | string
barMinWidth?: number | string
barWidth?: number | string
data?: (CandlestickDataValue | CandlestickDataItemOption)[]
}
class CandlestickSeriesModel extends SeriesModel<CandlestickSeriesOption> {
static readonly type = 'series.candlestick';
readonly type = CandlestickSeriesModel.type;
static readonly dependencies = ['xAxis', 'yAxis', 'grid'];
coordinateSystem: Cartesian2D;
dimensions: string[];
defaultValueDimensions = [
{name: 'open', defaultTooltip: true},
{name: 'close', defaultTooltip: true},
{name: 'lowest', defaultTooltip: true},
{name: 'highest', defaultTooltip: true}
];
static defaultOption: CandlestickSeriesOption = {
// zlevel: 0,
z: 2,
coordinateSystem: 'cartesian2d',
legendHoverLink: true,
// xAxisIndex: 0,
// yAxisIndex: 0,
layout: null, // 'horizontal' or 'vertical'
clip: true,
itemStyle: {
color: '#eb5454', // positive
color0: '#47b262', // negative
borderColor: '#eb5454',
borderColor0: '#47b262',
borderColorDoji: null, // when close === open
// borderColor: '#d24040',
// borderColor0: '#398f4f',
borderWidth: 1
},
emphasis: {
scale: true,
itemStyle: {
borderWidth: 2
}
},
barMaxWidth: null,
barMinWidth: null,
barWidth: null,
large: true,
largeThreshold: 600,
progressive: 3e3,
progressiveThreshold: 1e4,
progressiveChunkMode: 'mod',
animationEasing: 'linear',
animationDuration: 300
};
/**
* Get dimension for shadow in dataZoom
* @return dimension name
*/
getShadowDim() {
return 'open';
}
brushSelector(dataIndex: number, data: SeriesData, selectors: BrushCommonSelectorsForSeries): boolean {
const itemLayout = data.getItemLayout(dataIndex);
return itemLayout && selectors.rect(itemLayout.brushRect);
}
}
mixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);
export default CandlestickSeriesModel;
相关信息
相关文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦