Code Monkey home page Code Monkey logo

wzcchartlineview's Introduction

WZCChartLineView

一款可最大化自定义的折线图与曲线图

感谢大家对这款曲线/折线图的厚爱, 由于这款折线图目前无法满足实际开发中的效果与用户体验,
 新的折线图 XCharts 已经出现, XCharts支持实时回放,去除pop数值提示,提供最新的提示方式,
 同时支持柱状图.

XCharts 体验地址: https://github.com/voisen/XCharts

老司机们 快快上车


建议使用 XCharts


特性

  • 支持设置 Y 轴刻度数量
  • 支持设置 X 轴的位置
  • 支持对称显示坐标轴
  • 支持设置最小显示的 Y 值 (也支持自动设置 Y 值)
  • 支持图例显示
  • 支持图例自由拖动
  • 点击点支持pop提示类型显示(微信的+号效果显示)
  • 支持折线/曲线绘制
  • 支持图标区域滚动,Y坐标固定显示
  • 支持多条走势线在一个表上显示
  • 其他...

更新日志

2017.05.27 修复部分bug

2016.10.14 修复添加新功能后的重大 bug, 添加新功能(支持设置 x 轴的位置,支持对称于 X 轴显示坐标, 刻度的数量智能化)

2016.10.13 添加支持设置最小显示的 Y 值 (也支持自动设置 Y 值)

2016.8.12 添加可控参数,控制是否显示辅助线条;增加垂直于 Y 轴的辅助线

效果图

  • 不要纠结,图例可以任意拖动,坐标轴可以自由设定

折线图

  • 不要纠结,图例可以任意拖动

曲线图

  • 不要纠结, 图例可以任意拖动, X坐标轴自定义在0点 曲线图

WZCChartLineView

#pragma mark - 必须设置
/** X 坐标轴上的值 (字符串)*/
@property (nonnull,strong,nonatomic) NSArray<NSString*> *x_values;
/* Y坐标上的值 支持多组值 (字符串)*/
@property (nonnull,strong,nonatomic) NSArray<NSArray<NSString*> * > *y_values;
/* 折线的名称/类别 (有几条直线就有一个名字,默认无) */
@property (nonnull,strong,nonatomic) NSArray<NSString*> *y_titles;
/* 折线的颜色数组(默认随机方法) */
@property (nonnull,strong,nonatomic) NSArray<UIColor *> *colorsArray;

/* 以上 设置完毕后才调用绘图方法 */
-(void)startDrawWithLineType:(WZCChartLineType)lineType;

#pragma mark - 可选设置
/**
*  设置最小的 Y 值(默认为0) ,设置时需注意: 如果设置的值大于最大的 Y 值, 则设置为无效;
*
*  @param minValue 最小的 Y 值 (设置负数可以自动设置 Y 值,从最小的 Y 值起步)
*/
- (void)setMinY:(CGFloat)minValue;

/**
*  设置 X 坐标轴的位置
*
*  @param minValue 对应的 Y 值(默认为最小值)
*/
- (void)setXCoordinatesLocationInYValue:(CGFloat)yValue;

/**
*  设置 Y 轴刻度的个数
*
*  @param tipCont 默认为自动
*/
- (void)setCoords_Y_Tips:(NSInteger)tipCont;

/**
*  如果坐标轴中存在负数,调用此函数功能是对称显示坐标
*
*  @param show 是否显示0点刻度
*/
- (void)setCoordPlusAndMinusSymmetryShowZeroPoint:(BOOL)show;

自定义配置

#define Arrows_Size 3 //箭头半径
#define Arrows_Height 6 //箭头的高度
#define Coords_lineColor [UIColor blackColor].CGColor //坐标线的颜色
//#define Coords_Y_Tip 5 //刻度个数  -->改动
#define Coords_Y_Tip_Width 6 //刻度宽度
#define Coords_Y_LableFont_Size 12 //Y轴标签的字体大小
#define Coords_X_LableFont_Size 10 //Y轴标签的字体大小
#define Coords_X_Lable_Space 10 //X轴标签间距
#define Coords_X_Verticlal_Line_Color [UIColor lightGrayColor].CGColor //垂直于X轴的线条颜色
#define Coords_X_Verticlal_Line_Width 0.8 //垂直于X轴的线条宽度
#define Coords_Values_Line_Width 1.8 //折线的线条宽度
#define Coords_Legend_Font_Size 15 //图例的字体大小
#define Coords_Y_Verticlal_Line_Color [UIColor lightGrayColor].CGColor //垂直于Y轴的线条颜色
#define Coords_Y_Verticlal_Line_Width 0.8 //垂直于Y轴的线条宽度

//新增---->2016.8.12
#define Show_Coords_X_Verticlal_Line YES // 显示垂直于X轴的线条
#define Show_Coords_Y_Verticlal_Line YES //显示垂直于Y轴的线条

使用

WZCChartLine *v = [[WZCChartLine alloc]initWithFrame:self.view.bounds];

v.x_values = @[@"一月",@"二月",@"三月",@"四月",@"五月",@"六月",@"七月",@"八月",@"九月",@"十月",@"十一月",@"十二月"];

NSArray *arr1 = @[@"5000",@"5500",@"6200",@"4000",@"3850",@"6489",@"7200",@"5345",@"6740",@"4980",@"4600",@"5390"];
NSArray *arr2 = @[@"500",@"3500",@"610",@"1200",@"3670",@"3320",@"4532",@"1210",@"2100",@"992",@"667",@"873"];
v.y_values = @[arr1,arr2];
v.y_titles = @[@"收入",@"支出"];
v.colorsArray = @[[UIColor greenColor],[UIColor redColor]];

[v startDrawWithLineType:WZCChartLineTypeBroken];

[self.view addSubview:v];

wzcchartlineview's People

Contributors

voisen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

wzcchartlineview's Issues

十万火急!!!

您好,项目需要一四象限,不知道怎么去划第四象限,请问可以更新一下吗,挺着急的,谢谢!

十万火急!!!

您好,项目需要一四象限,不知道怎么去画第四象限,还有,Y轴的坐标可以根据传入的数据进行自适应吗,比方说一组数据都是在220左右,波动不明显,可以放大Y轴吗,听着急的,谢谢!

万分感谢!

谢谢作者!对我帮助真的很大,万分感谢!

关于初始显示图标最右侧

您好,我最近在项目中使用了您的图标库,现在有一个需求是默认直接显示折线图的最右侧,我通过改代码实现了显示X坐标轴的最右侧,但是发现上方的折线图初始时还是显示的最左侧的状态,希望您能帮助一下,需要如何修改才能达到需求的效果。感谢!

pop提示出不来

当WZCChartLine是导航控制器的一个子视图的时候,点击图上的点不会弹出PopoverView,请问是什么情况???怎么解决??这里用UIViewController测试是正常显示的

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.