Python笔记 #11# 统计图定制化

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

  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图要敏感得多!尤其是在较长周期和价格变动比较大的情况下!
简单举例如下(观察两种坐标下趋势线的不同,尤其是跌穿趋势的关键位置和时间点):
可以很清楚地发现,如果作为中长线的波段交易者,运用对数坐标的趋势线来判断趋势完结和反抽位置要比运用普通坐标来得及时得多.
由普通坐标与对数坐标的原理可知,短周期内的普通坐标与对数坐标的差异很小,但长周期内普通坐标与对数坐标可能会差异比较大,有些在普通坐标上没有规律的图形到对数坐标上可能极有规律。
原文地址:https://www.cnblogs.com/xkxf/p/8295293.html