https://github.com/zhipingyang/xychart
XYChart is designed for line & bar of charts which can compare mutiple datas in form styles, and limited the range of values to show, and so on.
https://github.com/zhipingyang/xychart
barchart chart linechart
Last synced: 22 days ago
JSON representation
XYChart is designed for line & bar of charts which can compare mutiple datas in form styles, and limited the range of values to show, and so on.
- Host: GitHub
- URL: https://github.com/zhipingyang/xychart
- Owner: ZhipingYang
- License: apache-2.0
- Created: 2015-01-04T04:03:15.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-12-30T05:11:14.000Z (over 5 years ago)
- Last Synced: 2025-03-28T08:06:15.086Z (29 days ago)
- Topics: barchart, chart, linechart
- Language: Objective-C
- Homepage:
- Size: 1.12 MB
- Stars: 716
- Watchers: 34
- Forks: 173
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
> **XYChart** is designed for line & bar of charts which can compare mutiple datas in form styles, and limited the range of values to show, and so on.
| **LineChart** | **BarChart** |
|:-------:|:---------:|
|  |  |
| single datas in linechart | single datas in linechart |
|  |  |
| **LineDotsClicked:** show all if the dots closed in multi-datas | **BarClicked:** custom click effects in multi-datas |
|  |  |
| scrolling linechart (did set row width) | scrolling barchart (did set row width) |## Install
> required `iOS >= 8.0` with [Cocoapods](https://cocoapods.org/)
>
> ```ruby
> pod 'XYChart'
> ```## Usage
Expand for XYChart details
```objective-c
@interface XYChart : UIView@property (nonatomic, weak, nullable) id dataSource;
@property (nonatomic, weak, nullable) id delegate;@property (nonatomic, readonly) XYChartType chartType;
- (instancetype)initWithFrame:(CGRect)frame type:(XYChartType)type NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithType:(XYChartType)type;/**
更新图标数据
@param dataSource 数据
@param animation 是否执行动画
*/
- (void)setDataSource:(id)dataSource animation:(BOOL)animation;/**
重载数据
@param animation 是否执行动画
*/
- (void)reloadData:(BOOL)animation;@end
```**Method 1:**
[details](https://github.com/ZhipingYang/XYChart/issues/50)```objective-c
_chartView = [[XYChart alloc] initWithFrame:CGRectMake(0, 0, 300, 100) chartType:XYChartTypeLine];
_chartView.dataSource = self;
_chartView.delegate = self;
[self.view addSubview:_chartView];
```**Method 2:**
```objective-c
// the obj follow the XYChartDataSource protocol
_datasource = [[XYChartDataSourceItem alloc] init];_chartView = [[XYChart alloc] initWithType:XYChartTypeLine];
_chartView.dataSource = _datasource;
[self.view addSubview:_chartView];
```Expand for XYChartDelegate protocol details
```objective-c
@protocol XYChartDelegate
@optional/**
是否展示UIMenuController
*/
- (BOOL)chart:(XYChart *)chart shouldShowMenu:(NSIndexPath *)index;/**
点击后的action,重载一般就不show UIMenuController了
*/
- (void)chart:(XYChart *)chart itemDidClick:(id)item;/**
line用于展示圆圈,bar用于柱形图的动画
*/
- (CAAnimation *)chart:(XYChart *)chart clickAnimationOfIndex:(NSIndexPath *)index;@end
```Expand for XYChartDataSource protocol details
```objective-c
/**
多套对比数据展示
*/
@protocol XYChartDataSource/**
多少条并行对比数据,折线图表现多条线,柱状图表现一列中有几条柱状图
*/
- (NSUInteger)numberOfSectionsInChart:(XYChart *)chart;/**
完整的周期内,数据的个数,横向列数
*/
- (NSUInteger)numberOfRowsInChart:(XYChart *)chart;/**
x坐标的标题
*/
- (NSAttributedString *)chart:(XYChart *)chart titleOfRowAtIndex:(NSUInteger)index;/**
x坐标的标题
*/
- (NSAttributedString *)chart:(XYChart *)chart titleOfSectionAtValue:(CGFloat)sectionValue;/**
index下的数据模型
*/
- (id)chart:(XYChart *)chart itemOfIndex:(NSIndexPath *)index;/**
标记y轴方向高亮区间
*/
- (XYRange)visibleRangeInChart:(XYChart *)chart;/**
y轴方向分段,5就分5段
*/
- (NSUInteger)numberOfLevelInChart:(XYChart *)chart;/**
横向一栏的宽度
*/
- (CGFloat)rowWidthOfChart:(XYChart *)chart;/**
自适应平均分横向栏目的宽度
*/
- (BOOL)autoSizingRowInChart:(XYChart *)chart;@end
```## Author
XcodeYang, [email protected]
## License
XYChart is available under the MIT license. See the LICENSE file for more info.