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

  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. PyQt4布局管理——绝对定位方式

    PyQt4中的布局管理器 布局管理器是编程中重要的一部分.所谓布局管理器是指我们在窗口中安排部件位置的方法.布局管理器有两种工作方式:绝对定位方式(absolute positioning)和布局类别 ...

  2. JS-元素大小深入学习-offset、client、scroll等学习研究笔记

    一些属性和方法,在dom中没有规定如何确定页面中元素大小的情况下诞生... 1.偏移量(offset dimension) 测试代码: <!DOCTYPE html> <html&g ...

  3. PHP中new static()与new self()的区别异同

    self - 就是这个类,是代码段里面的这个类. static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static ...

  4. Suricata开源IDS安装与配置

    开源IDS Suricata安装 Linux下的依赖问题的解决 在Debian,Ubuntu或者Linux Mint系列 $ sudo apt-get install wget build-essen ...

  5. 学习POC框架pocsuite--编写hellowordPOC

    在这里,首先向安全圈最大的娱乐公司,某404致敬. 参考博文 https://www.seebug.org/help/dev 向seebug平台及该文原作者致敬,虽然并不知道是谁 长话短说其实,可自由 ...

  6. AngularJS』一点小小的理解

    『AngularJS』一点小小的理解   AngularJS 是一个前端的以Javascript为主的MVC框架.与AngularJS相类似的还有EmberJS. 随着时代在进步,各种各样的开发理念与 ...

  7. Nginx配置文件(nginx.conf)配置详解[转]

    转自:http://blog.csdn.net/tjcyjd/article/details/50695922 重新学习,发觉这篇文章写得很详细就摘录了! Nginx的配置文件nginx.conf配置 ...

  8. Linux系列-Xshell连接本地VMware安装的Linux虚拟机

    一.安装VMwareWorkstation并安装RedHat虚拟机,这里安装步骤省略,网络的资料很多,大侠们不如百度或者谷歌一下,大把的资料. 二.打开本地电脑的“网络连接”,你会发现多出了2个网络适 ...

  9. 关于cdn原理(就是内容分发网络)

    cdn,我理解其本质就是为了解决距离远产生的速度问题,使用就近的服务. 从中国请求美国一台服务器上的图片.一般比较慢,因为距离这么远,网络传输是存在损耗的,距离越远,传输的时间就越长.一般会看到浏览器 ...

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

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