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

  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. EL表达式格式化日期时间

    1.首先引入标签库 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> ...

  2. AndroidWear开发之HelloWorld篇

    通过前一篇的学习,我们把环境都搭建好了,这下我们就可以正真的开发了. 一.创建Wear项目 通过项目创建向导一步一步下去就可以创建好一个Wear项目: 1.新建项目,一次填入应用名字,应用包名,项目位 ...

  3. 关于sencha touch 用phonegap打包后,docked悬停的组件被手机软键盘遮挡的解决方法

    这个问题应该算是phonegap的一个bug,在mainifest.xml 里android:windowSoftInputMode设置成了adjustpan,理论上不会出现遮挡悬停组件这种情况, 不 ...

  4. 2015.10.11(js判断鼠标进入容器的方向)

    判断鼠标进入容器的方向 1.前几天在万圣节专题项目中用到了鼠标坐标page事件,随着鼠标背景图片移动形成有层次感的效果,但page事件在IE低版本不支持,所以还要做兼容.在研究page事件同时无意中想 ...

  5. 基于TINY4412的Andorid开发-------简单的LED灯控制

    参考资料: <Andriod系统源代码情景分析> <嵌入式Linux系统开发完全手册_基于4412_上册> 作者:彭东林 邮箱:pengdonglin137@163.com 平 ...

  6. linux 程序启动与停止管理脚本

    公司接了一个第三方的系统,基于linux写的几个程序,一共有9个部件,第三方没有给脚本,每次启动或停止都得一个一个手工去停止或修改.......,这里稍微鄙视下. 没办法,求人还不如自己动手写, 需求 ...

  7. iOS 单例用法

    单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 1.单例模式的要点: 显然单例模式的要点有三个:一是某个类只能有一个实例: ...

  8. mybatis-config.xml配置

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  9. chinese-typesetting:更好的中文文案排版

    欢迎指正.GitHub 地址:https://github.com/jxlwqq/chinese-typesetting 更好的中文文案排版 统一中文文案.排版的相关用法,降低团队成员之间的沟通成本, ...

  10. HDU_3183_A Magic Lamp

    A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...