将数据可视化有许多选择:

  1. 图的类型
  2. 定制化方式

选择什么样的表现方式通常取决于:

  1. 数据
  2. 你想表达什么

1、Labels

# Basic scatter plot, log scale
plt.scatter(gdp_cap, life_exp)
plt.xscale('log') # Strings
xlab = 'GDP per Capita [in USD]'
ylab = 'Life Expectancy [in years]'
title = 'World Development in 2007' # Add axis labels
plt.xlabel(xlab)
plt.ylabel(ylab) # Add title
plt.title(title) # After customizing, display the plot
plt.show()

2、Ticks

# Scatter plot
plt.scatter(gdp_cap, life_exp) # Previous customizations
plt.xscale('log')
plt.xlabel('GDP per Capita [in USD]')
plt.ylabel('Life Expectancy [in years]')
plt.title('World Development in 2007') # Definition of tick_val and tick_lab
tick_val = [1000,10000,100000]
tick_lab = ['1k','10k','100k'] # Adapt the ticks on the x-axis
plt.xticks(tick_val, tick_lab) # After customizing, display the plot
plt.show()

3、Sizes

# Import numpy as np
import numpy as np # Store pop as a numpy array: np_pop
np_pop = np.array(pop) # Double np_pop
np_pop *= 2 # Update: set s argument to np_pop
plt.scatter(gdp_cap, life_exp, s = np_pop) # Previous customizations
plt.xscale('log')
plt.xlabel('GDP per Capita [in USD]')
plt.ylabel('Life Expectancy [in years]')
plt.title('World Development in 2007')
plt.xticks([1000, 10000, 100000],['1k', '10k', '100k']) # Display the plot
plt.show()

之所以把 pop 换成 np_pop 是因为 np_pop 可以方便的整体数学运算, list 不具备这样的性质。

5、Colors

# Specify c and alpha inside plt.scatter()
plt.scatter(x = gdp_cap, y = life_exp, s = np.array(pop) * 2, c = col, alpha = 0.8) # Previous customizations
plt.xscale('log')
plt.xlabel('GDP per Capita [in USD]')
plt.ylabel('Life Expectancy [in years]')
plt.title('World Development in 2007')
plt.xticks([1000,10000,100000], ['1k','10k','100k']) # Show the plot
plt.show()

c 设置颜色, alpha 设置透明度。

6、定制化补充

# Scatter plot
plt.scatter(x = gdp_cap, y = life_exp, s = np.array(pop) * 2, c = col, alpha = 0.8) # Previous customizations
plt.xscale('log')
plt.xlabel('GDP per Capita [in USD]')
plt.ylabel('Life Expectancy [in years]')
plt.title('World Development in 2007')
plt.xticks([1000,10000,100000], ['1k','10k','100k']) # Additional customizations
plt.text(1550, 71, 'India')
plt.text(5700, 80, 'China')
# Add grid() call
plt.grid(True) # Show the plot
plt.show()

附加

什么时候用对数坐标?来自百度百科

一、普通坐标与对数坐标
1、普通坐标的刻度之间的间隔距离与价格成正比。
即在普通坐标系中,所有当日涨跌相等的
K 线长度是一样的。
比如所有自开盘至收盘上涨 1 元钱的 K
线具有同样的长度。但是在对数坐标系中,坐标刻度之间的间隔距离与价格的对数成正比。即当日涨跌幅( % )相等的 K
线才具有同样的长度。
如所有自开盘至收盘上涨 10% 的 K
线在对数坐标中长度是一样的。
2、对数坐标与普通坐标的区别是:假定股票连续上涨,从 5 元涨到 11 元,每天涨 1
元,在普通坐标中画出的是 6 条一样长的阳线,而在对数坐标中,由于第一根阳线从 5 元到 6 元涨幅为 20% ,最后一根阳线从 10
元到 11 元涨幅为 10%
,所以其最后一根阳线的长度是第一根的一半。我们推荐使用对数坐标系,
因为对数坐标系能够反映股票的实际盈亏。
二、普通坐标及对数坐标画线的注意事项
1、画直线必须用对数坐标
?因为普通坐标表示的是价格变化的绝对值,即今天比昨天涨了多少点,而对数坐标表示的是价格变化的相对强度,即今天比昨天涨了%几。通常情况下,只有在对数坐标上才能看到平行的通道线(比较直观),而在普通坐标上的通道线并不是直线,实际是2个指数函数,是曲线。2、画黄金分割线做水平黄金分割线一定要用普通坐标
,如果用对数坐标的话,做出的是对数坐标的黄金分割,而不是价格的黄金分割趋势线+对数坐标的妙用
趋势线作为技术分析的重要工具,有着非常好的实战效果,但在国人运用过程中,不少人都忽略了一项重要因素:
其运用于研判比较长时间且价格变化比较大的K图时,应选取对数坐标.
反之则可用普通坐标.
主要原因在于对数坐标在反映价格变化时是以比例为基数,而非简单的算术值.这一点,需要引起足够重视,
而且在对趋势线是否被穿越的观察上,使用对数坐标的K图比普通坐标的K图要敏感得多!尤其是在较长周期和价格变动比较大的情况下!
简单举例如下(观察两种坐标下趋势线的不同,尤其是跌穿趋势的关键位置和时间点):
可以很清楚地发现,如果作为中长线的波段交易者,运用对数坐标的趋势线来判断趋势完结和反抽位置要比运用普通坐标来得及时得多.
由普通坐标与对数坐标的原理可知,短周期内的普通坐标与对数坐标的差异很小,但长周期内普通坐标与对数坐标可能会差异比较大,有些在普通坐标上没有规律的图形到对数坐标上可能极有规律。

Python笔记 #11# 统计图定制化的更多相关文章

  1. selenium+python笔记11

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: search in mail box "&qu ...

  2. python笔记-11 rabbitmq

    一.理解rabbitmq的基本背景 1.理解消息队列 1.1 普通queue 在前面的博客中所提到的队列,此处均称之为普通队列 简述一下普通队列的一些分类及不足 1.1.1 基本Queue:queue ...

  3. python笔记11

    今日内容 函数小高级 lambda 表达式 内置函数 内容回顾 函数基本结构 参数 形参 基本参数:def func(a1,a2):pass 默认值:def func(a1,a2=123):pass ...

  4. python+robot framework实现测报告定制化和邮件发送

    前面已经介绍了python+robot framework自动化框架和基本原理的实现,详情请看 python+robot framework接口自动化测试 本章主要讲解报告已经产生那如何以自动化的方式 ...

  5. Python标准库笔记(11) — Operator模块

    Operator--标准功能性操作符接口. 代码中使用迭代器时,有时必须要为一个简单表达式创建函数.有些情况这些函数可以用一个lambda函数实现,但是对于某些操作,根本没必要去写一个新的函数.因此o ...

  6. Linux Shell输出颜色字符学习笔记(附Python脚本实现自动化定制生成)

    齿轮发出咔嚓一声,向前进了一格.而一旦向前迈进,齿轮就不能倒退了.这就是世界的规则. 0x01背景 造了个轮子:御剑师傅的ipintervalmerge的Python版本.觉得打印的提示信息如果是普通 ...

  7. Python定制化天气预报消息推送

    sansui-Weather 代码码云 介绍 定制化天气预报消息推送(练手小脚本) Python脚本实现天气查询应用,提醒她注意保暖! 功能介绍 天气信息获取 当天天气信息提示 第二天天气信息提示 网 ...

  8. 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:11.定制化Log输出

    欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 前言 在<迷你微信>服务器中,我们用了Log4J来进行输出,这可以在我们程序出现异常的时候找到错误发生时 ...

  9. Linux定制化RPM包

    定制化RPM包 1.Linux安装软件方法 1- rpm/yum安装 简单.速度快,但是不能定制安装 RPM RedHat Package Manager(RPM软件包管理器) 2- 二进制安装 解压 ...

随机推荐

  1. JS常用函数与方法

    //当页面关闭时触发 window.onbeforeunload = function() { alert('关闭了吧'); } //关闭窗口(弹出式窗口) parent.window.close() ...

  2. 腾讯正式开源高性能超轻量级 PHP 框架 Biny

    概况 Biny是一款高性能的超轻量级PHP框架 遵循 MVC 模式,用于快速开发现代 Web 应用程序 Biny代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用 高性能,框架 ...

  3. JS-两周内自动登录功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 如何在office2010中的EXCEL表格使用求和公式

    EXCEL做表格非常方便,有时我们需要对表格中的很多数字进行求和计算,如果用计算器算会非常麻烦,别担心,用求和公式计算,非常简单的 工具/原料   电脑一台 offic2010软件一套 方法/步骤   ...

  5. postgresql数据库中对重复数据的处理

    我们在使用postgresql数据库的时候,如果一张数据表在未做任何约束的情况下,很可能会出现几条完全一样的数据,即重复数据.如下图所示: 那么如果我们要删除其中的2条该怎么办呢?第一种我们可以清空表 ...

  6. 【BZOJ3678】wangxz与OJ Splay

    [BZOJ3678]wangxz与OJ Description 某天,wangxz神犇来到了一个信息学在线评测系统(Online Judge).由于他是一位哲♂学的神犇,所以他不打算做题.他发现这些题 ...

  7. mysql表大小写问题

    查看大小写区分 mysql> show variables like "%case%"; linux在mysql安装完后默认:区分表名的大小写,不区分列名的大小写 改变表名的 ...

  8. jquery操作select标签change事件

    $('#update_supply_id').on('change',function(){//判断是否选取prompt属性,无返回值: if($(this).val()){ var selectTe ...

  9. python使用MySqlDB

    下载安装MySQLdb <1>linux版本 http://sourceforge.net/projects/mysql-python/ 下载,在安装是要先安装setuptools,然后在 ...

  10. MacBook鼠标指针乱窜/不受控制问题的解决方法

    用了快一年的MacBook Pro最近出现了奇怪的问题.出问题时,鼠标不受控制,屏幕上鼠标指针乱窜,还时不时自动点击,犹如电脑被人远程控制一般.不管是用trackpad还是用外接鼠标,都是同样问题.电 ...