如何定制Core Plot主题

CorePlot 自定义主题教程
本文介绍如何使用 CorePlot 框架自定义图表主题,包括背景渐变填充、坐标轴网格线设置及绘图区域样式调整等核心功能。
部署运行你感兴趣的模型镜像

CorePlot主题是一个CPTheme子类。CPTheme提供了一系列方法,你可以覆盖其中3个方法 从而实现自定义的主题:

1、 -( void )applyThemeToBackground:( CPGraph *)graph;

通过传递进来的CPGraph参数,设置背景CPGraph

2、 -( void )applyThemeToPlotArea:( CPPlotAreaFrame *)plotAreaFrame;

通过传递进来的CPPlotArea参数,设置PlotArea风格

3、 -( void )applyThemeToAxisSet:( CPAxisSet *)axisSet;

通过传递进来的CPAxisSet参数,设置坐标系风格

下面是一个CPTheme子类的例子:

一、.h文件

.h文件很简单,申明父类为CPTheme:

#import <Foundation/Foundation.h>

#import <CorePlot/CorePlot.h>

@interface MyCPTheme : CPXYTheme {

}

@end

二、.m文件

1、首先我们来为背景设置一个自定义颜色渐变:

-( void )applyThemeToBackground:( CPXYGraph *)graph

{

// 终点色: 20 %的灰度

CPColor *endColor = [ CPColor colorWithGenericGray : 0.2f ];

// 创建一个渐变区:起点、终点都是 0.2 的灰度

CPGradient *graphGradient = [ CPGradient gradientWithBeginningColor :endColor endingColor :endColor];

// 设置中间渐变色 1 ,位置在 30 %处,颜色为 3 0 %的灰

graphGradient = [graphGradient addColorStop :[ CPColor colorWithGenericGray : 0.3f ] atPosition : 0.3f ];

// 设置中间渐变色 2 ,位置在 50 %处,颜色为 5 0 %的灰

graphGradient = [graphGradient addColorStop :[ CPColor colorWithGenericGray : 0.5f ] atPosition : 0.5f ];

// 设置中间渐变色 3 ,位置在 60 %处,颜色为 3 0 %的灰

graphGradient = [graphGradient addColorStop :[ CPColor colorWithGenericGray : 0.3f ] atPosition : 0.6f ];

// 渐变角度:垂直 90 度(逆时针)

graphGradient. angle = 90.0f ;

// 渐变填充

graph. fill = [ CPFill fillWithGradient :graphGradient];

}

2、在坐标轴上画上网格线:

// Y 轴上添加平行线

-( void )applyThemeToAxisSet:( CPXYAxisSet *)axisSet {

// 设置网格线线型

CPLineStyle *majorGridLineStyle = [ CPLineStyle lineStyle ];

majorGridLineStyle. lineWidth = 1.0f ;

majorGridLineStyle. lineColor = [ CPColor lightGrayColor ];

CPXYAxis *axis=axisSet. yAxis ;

// 轴标签方向: CPSignNone -无,同 CPSignNegative CPSignPositive -反向 , y 轴的右边, CPSignNegative -正向,在 y 轴的左边

axis. tickDirection = CPSignNegative ;

// 设置平行线,默认是以大刻度线为平行线位置

axis. majorGridLineStyle = majorGridLineStyle ;

// 如果 labelingPolicy 设置为 CPAxisLabelingPolicyNone majorGridLineStyle 将不起作用

//axis.labelingPolicy = CPAxisLabelingPolicyNone ;

}

3、设置绘图区

下面的代码在绘图区(PlotArea)填充一个灰色渐变。注意由于绘图区(PlotArea)位于背景图(Graph)的上层(参考 Core Plot 框架的类层次图 ),因此对于绘图区所做的设置会覆盖对 Graph 所做的设置,除非你故意在 Graph4 边留白,否则看不到背景图的设置。

-( void )applyThemeToPlotArea:( CPPlotAreaFrame *)plotAreaFrame

{

// 创建一个 20 -50 %的灰色渐变区,用于设置绘图区。

CPGradient *gradient = [ CPGradient gradientWithBeginningColor :[ CPColor colorWithGenericGray : 0.2f ] endingColor :[ CPColor colorWithGenericGray : 0.7f ]];

gradient. angle = 45.0f ;

// 渐变填充

plotAreaFrame. fill = [ CPFill fillWithGradient :gradient];

}

三、应用主题

很简单,将CPTheme替换成我们自己的主题,并应用到CPGraph:

#import "MyCPTheme.h"

⋯⋯

CPTheme *theme=[[ MyCPTheme alloc ] init ];

[ graph applyTheme :theme];

来看看效果:


您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

【最优潮流】直流最优潮流(OPF)课设(Matlab代码实现)内容概要:本文档主要围绕“直流最优潮流(OPF)课设”的Matlab代码实现展开,属于电力系统优化领域的教学与科研实践内容。文档介绍了通过Matlab进行电力系统最优潮流计算的基本原理与编程实现方法,重点聚焦于直流最优潮流模型的构建与求解过程,适用于课程设计或科研入门实践。文中提及使用YALMIP等优化工具包进行建模,并提供了相关资源下载链接,便于读者复现与学习。此外,文档还列举了大量与电力系统、智能优化算法、机器学习、路径规划等相关的Matlab仿真案例,体现出其服务于科研仿真辅导的综合性平台性质。; 适合人群:电气工程、自动化、电力系统及相关专业的本科生、研究生,以及从事电力系统优化、智能算法应用研究的科研人员。; 使用场景及目标:①掌握直流最优潮流的基本原理与Matlab实现方法;②完成课程设计或科研项目中的电力系统优化任务;③借助提供的丰富案例资源,拓展在智能优化、状态估计、微电网调度等方向的研究思路与技术手段。; 阅读建议:建议读者结合文档中提供的网盘资源,下载完整代码与工具包,边学习理论边动手实践。重点关注YALMIP工具的使用方法,并通过复现文中提到的多个案例,加深对电力系统优化问题建模与求解的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值