matlplotlib 为折线图填充渐变颜色
概要
本篇记录绘图时填充颜色时的一些常用设置,主要用到了 imshow,fill 函数。
填充图实例
填充的效果图如下:

图 1:渐变色效果图
可根据下方给出的代码进行自定义。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon May 6 10:29:22 2019
@author: zk
"""
import matplotlib.pyplot as plt
import matplotlib as mpl
import datetime
import matplotlib.dates as mdate
import numpy as np
import random
DAYS = 365
def Init():
timedelta = datetime.timedelta(days = 1)
startdate = datetime.date.today()
xdate = [startdate+i*timedelta for i in range(DAYS)]
ycapital = [3000]
for _ in range(DAYS-1):
ycapital.append(ycapital[-1]+random.uniform(-1, 1.1))
return xdate, ycapital
xdate, ydata = Init()
xlims = mdate.date2num([xdate[0], xdate[-1]])
# 设置值,控制显示颜色深浅
# 第二个参数 yv 是每行值相同,逐行增加,所以设定了水平方向渐变
_, yv = np.meshgrid(np.linspace(0,1,210), np.linspace(0,1,90))
# Draw the image over the whole plot area
fig, ax = plt.subplots(figsize=(21,9))
# 画折线图
ax.plot(xdate, ydata, 'r-', label = 'My Strategy', linewidth=2)
# 其中 cmap 参数可以有许多选择,具体看正文介绍
# zv: array-like or PIL image,
# origin:Place the [0,0] index of the array in the upper left or lower left corner of the axes
# 所以 origin 控制了下方颜色深还是上方颜色深
#ax.imshow(yv, cmap=mpl.cm.Blues)
# aspect 设置长宽比例为自适应,默认值为 equal ,坑爹啊。。。
extent = [xlims[0], xlims[1], min(ydata), max(ydata)]
ax.imshow(yv, cmap=mpl.cm.Blues, origin='lower',alpha = 0.5, aspect = 'auto',
extent = extent)
# Erase 上面 the data by filling with white
ax.fill_between(xdate, ydata, max(ydata), color='white')
# 设置刻度值颜色
plt.yticks(color = 'gray')
# 设置 y 轴百分比显示,注意将 y 轴数据乘以 100
#ax.yaxis.set_major_formatter(ticker.FormatStrFormatter('%.2f%%'))
# 颜色,旋转刻度
plt.xticks(color = 'gray',rotation = 15)
# 指定字体,大小,颜色
fontdict = {"family":"Times New Roman", 'size':12, 'color':'gray'} #Times New Roman, Arial
plt.title("random account value", fontdict = fontdict)
plt.xlabel("date(day)", fontdict = fontdict)
plt.ylabel("account value", fontdict = fontdict)
# 去掉边框 top left right bottom
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['right'].set_visible(False)
# 设置 x 轴颜色
ax.spines['bottom'].set_color('lightgray')
#设置时间标签显示格式
ax.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))
#设置时间刻度间隔
#timedelta = (xdate[-1] - xdate[0]) / 10 # 这种方式不能保证显示最后一个日期
#plt.xticks(mdate.drange(xdate[0], xdate[-1], timedelta))
# 分成 10 份
delta = round(len(xdate) / 9)
plt.xticks([xdate[i*delta] for i in range(9)] + [xdate[-1]])
#plt.yticks(np.linspace(min(ydata), max(ydata), 5))
#通过修改tick_spacing的值可以修改x轴的密度
#ax.xaxis.set_major_locator(ticker.MultipleLocator(10))
# 去掉 y 轴刻度线,四个方向均可设置
plt.tick_params(left = 'off')
# 设置刻度的朝向,宽,长度
plt.tick_params(which = 'major', direction = 'out', width = 0.2, length = 5) # in, out or inout
# 设置刻度显示在哪个方向上
#tick_params(labeltop='on',labelbottom='off',labelleft='off',labelright='off')
# 设置 y 轴方向的网络线
plt.grid(axis = 'y', color = 'lightgray', linestyle = '-', linewidth = 0.5)
# 设置图例列宽:columnspacing=float (upper left)
plt.legend(loc = 'best', fontsize = 12, frameon=False, ncol = 1)
#fig.autofmt_xdate()
plt.show()
至于参数 cmap 的选择可参考下图,该图是官网其中一个颜色效果展示图,更多可访问官网 colormaps_reference。

图 2:渐变色效果图
matlplotlib 为折线图填充渐变颜色的更多相关文章
- silverlight chart 折线图 的线颜色如何修改???
silverlight chart 折线图 的线颜色如何修改??? 我做出来都是这些偏黄色,请问如何修改线的颜色,以及线的宽度?谢谢
- echarts相关属性设置(2)--折线图和柱状图的结合使用
type:bar和line的组合 option = { { tooltip: { trigger: 'axis', axisPointer: { // type: 'shadow' }, // lab ...
- echarts相关属性设置(1)折线图篇
option = { tooltip: { trigger: 'axis', // axisPointer: { // type: 'cross', // label: { // background ...
- iOS 动画绘制线条颜色渐变的折线图
效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有 ...
- echarts折线图上下颜色渐变样式
// 折线图let lineChart = echarts.init(document.getElementById('lineChart'));let lineOption = { title: { ...
- IOS绘制渐变背景色折线图的一种尝试
1.绘制折线图 上次在群里看到一个折线图划的很漂亮,自己想实现一个这样的 ,但是一直没什么头绪,不知道怎么做,就开始在网上查找划线,绘 制渐变色这一块的内容,用最笨的方式,自己尝试的写了一些,也没 有 ...
- echart折线图,柱状图,饼图设置颜色
转载: 之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: xAxis: { type: 'category ...
- echart 折线图、柱状图、饼图、环形图颜色修改
之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: xAxis: { type: 'category', b ...
- 跟我一起玩Win32开发(23):渐变颜色填充
GradientFill函数可以对特定的矩形区域或者三角形区域进行渐变颜色的填充.我们先来看看GradientFill函数到底长得什么样子,帅不帅. BOOL GradientFill( _In_ ...
随机推荐
- bzoj4873: [Shoi2017]寿司餐厅(最小割)
传送门 大佬们是怎么一眼看出这是一个最大权闭合子图的……大佬好强->这里 1.把所有区间$(i,j)$看成一个点,如果权值大于0,则从$S$向他连边,容量为权值,否则从它向$T$连边,容量为权值 ...
- unique within an element
从tomcat 6 升到 tomcat-7.0.12 jsp页面报: org.apache.jasper.JasperException: /XXX/XXX.jsp(59,55) Attribute ...
- String类、static、Arrays类、Math类
String类.static.Arrays类.Math类 String类.static.Arrays类.Math类 String类.static.Arrays类.Math类 String类.stati ...
- 根据从redis缓存的数据查询出来,在从数据库中取出所有的数据,俩个数据进行比较,去掉重复,剩下库中新插入的数据,取出新数据,然后把redis中的缓存数据清空把从数据库中查出来的所有数据放到redis缓存中
参考代码: public String getNewCenter(HttpServletRequest request,HttpServletResponse resonse){ JSONObject ...
- Unity 动画系统目录
引言 提到动画,你想到的是什么? 图片在循环播放构成的动画.UI物体的循环变色.2D 3D物体在循环运动.链条弹簧的运动.3D的玩家在行走奔跑挥剑.非人形的运动... 动画实现方式的分类 动画实现的方 ...
- ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven(约束第K短路)
题意:求11到nn的第kk短的路径长度,如果超过TT输出Whitesnake!Whitesnake!,否则输出yareyaredawayareyaredawa. 好无以为 , 这就是一道模板题, 当是 ...
- Codeforces Round #506 (Div. 3) - D. Concatenated Multiples(思维拼接求是否为k的倍数)
题意 给你N个数字和一个K,问一共有几种拼接数字的方式使得到的数字是K的倍数,拼接:“234”和“123”拼接得到“234123” 分析: N <= 2e5,简单的暴力O(N^2)枚举肯定超时 ...
- Linux--7
一.Nginx.conf主配置文件 Nginx主配置文件conf/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的.一般,每个区块以一对大括号{}来表示开始与结束. 核心模 ...
- myeclipse非正常关闭解决方法
http://blog.csdn.net/xb12369/article/details/24960347
- @Requestbody@ApiParam @PathVariable @RequestParam三者区别
一.问题描述 由于项目是前后端分离,因此后台使用的是spring boot,做成微服务,只暴露接口.接口设计风格为restful的风格,在get请求下,后台接收参数的注解为RequestBody时会报 ...