概要

 

本篇记录绘图时填充颜色时的一些常用设置,主要用到了 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 为折线图填充渐变颜色的更多相关文章

  1. silverlight chart 折线图 的线颜色如何修改???

    silverlight  chart 折线图 的线颜色如何修改??? 我做出来都是这些偏黄色,请问如何修改线的颜色,以及线的宽度?谢谢

  2. echarts相关属性设置(2)--折线图和柱状图的结合使用

    type:bar和line的组合 option = { { tooltip: { trigger: 'axis', axisPointer: { // type: 'shadow' }, // lab ...

  3. echarts相关属性设置(1)折线图篇

    option = { tooltip: { trigger: 'axis', // axisPointer: { // type: 'cross', // label: { // background ...

  4. iOS 动画绘制线条颜色渐变的折线图

    效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有 ...

  5. echarts折线图上下颜色渐变样式

    // 折线图let lineChart = echarts.init(document.getElementById('lineChart'));let lineOption = { title: { ...

  6. IOS绘制渐变背景色折线图的一种尝试

    1.绘制折线图 上次在群里看到一个折线图划的很漂亮,自己想实现一个这样的 ,但是一直没什么头绪,不知道怎么做,就开始在网上查找划线,绘 制渐变色这一块的内容,用最笨的方式,自己尝试的写了一些,也没 有 ...

  7. echart折线图,柱状图,饼图设置颜色

    转载: 之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: xAxis: { type: 'category ...

  8. echart 折线图、柱状图、饼图、环形图颜色修改

    之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: xAxis: { type: 'category', b ...

  9. 跟我一起玩Win32开发(23):渐变颜色填充

    GradientFill函数可以对特定的矩形区域或者三角形区域进行渐变颜色的填充.我们先来看看GradientFill函数到底长得什么样子,帅不帅. BOOL GradientFill( _In_   ...

随机推荐

  1. 我的省选 Day -14

    Day -14 07:43:27 到机房了,不知道早上要做什么题,要不去选一题NOI原题来试试水好了 (因为NOI的原题质量比较有保证吧..) 09:11:22 正在做NOI2016的网格 开始写自己 ...

  2. python之垃圾回收机制

    一.前言 Python 是一门高级语言,使用起来类似于自然语言,开发的时候自然十分方便快捷,原因是Python在背后为我们默默做了很多事情,其中一件就是垃圾回收,来解决内存管理,内存泄漏的问题. 内存 ...

  3. 消息中间件的研究(二) RabbitMQ应用场景分析

    分析一下六个场景下RabbitMQ的应用: 1.爬虫 2.智能家居云平台 3.电子商务系统 4.实时监控系统 5.海量日志的分布式处理 6. 智能交通管控平台中数据分析子系统     1.爬虫     ...

  4. nginx大量TIME_WAIT的解决办法

    1.netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 查看time_wait 很大 2.解决此问题需要对sysc ...

  5. python3+Appium自动化06-屏幕截图

    截图方法 save_screenshot() 该方法直接保存当前屏幕截图到当前脚本所在文件位置 driver.save_screenshot('login.png') get_screenshot_a ...

  6. (转)Linux之split命令详解

    Linux之split命令详解 原文:http://m.jb51.net/article/73632.htm Linux split命令用于将一个文件分割成数个,该指令将大文件分割成较小的文件,在默认 ...

  7. DB2去重的几种方法

    有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略. 例如下表:table1 用户办理套餐的记 ...

  8. Handler: Service中使用Toast

    Handler 的使用在 android App 开发中用的颇多,它的作用也很大,使用 Handler 一般也会使用到多线程,相信大家对 Handler 不会陌生,在这里,重点说一下 android ...

  9. [LeetCode]10. Regular Expression Matching正则表达式匹配

    Given an input string (s) and a pattern (p), implement regular expression matching with support for ...

  10. 分享到qq空间等代码

    <!-- Baidu Button BEGIN --><div id="bdshare" class="bdshare_t bds_tools get- ...