1 import numpy as np
 2 
 3 linear_data = np.array([1,2,3,4,5,6,7,8])
 4 exponential_data = linear_data**2
 5 
 6 plt.figure()
 7 #画直线和平方后的线
 8 plt.plot(linear_data, '-o', exponential_data, '-o')
 9 
10 #用红色虚线画另一组点
11 plt.plot([22,44,55], '--r')
12 #添加横纵坐标标注和图的标题
13 plt.xlabel('Some data')
14 plt.ylabel('Some other data')
15 plt.title('A title')
16 #用图例项添加图例,因为之前没有给线段定义labels
17 plt.legend(['Baseline', 'Competition', 'Us'])
18 
19 #填充一次和两次线段之间的空间
20 plt.gca().fill_between(range(len(linear_data)), 
21                        linear_data, exponential_data, 
22                        facecolor='blue', 
23                        alpha=0.25)

 

1 import pandas as pd
2 
3 plt.figure()
4 observation_dates = np.arange('2017-01-01', '2017-01-09', dtype='datetime64[D]')
5 observation_dates = map(pd.to_datetime, observation_dates) # trying to plot a map will result in an error
6 plt.plot(observation_dates, linear_data, '-o',  observation_dates, exponential_data, '-o')

错误代码

TypeError: object of type 'map' has no len()

 

1 plt.figure()
2 observation_dates = np.arange('2017-01-01', '2017-01-09', dtype='datetime64[D]')
3 observation_dates = list(map(pd.to_datetime, observation_dates)) # 把map转换成list来避免错误
4 plt.plot(observation_dates, linear_data, '-o',  observation_dates, exponential_data, '-o')
 1 x = plt.gca().xaxis
 2 
 3 # 因为日期太长导致横坐标相互遮盖,所以旋转横坐标值45°
 4 for item in x.get_ticklabels():
 5     item.set_rotation(45)
 6 
 7 # 调整坐标系防止横坐标旋转部分被遮盖
 8 plt.subplots_adjust(bottom=0.25)
 9 #添加横纵坐标标注和图标标题
10 ax = plt.gca()
11 ax.set_xlabel('Date')
12 ax.set_ylabel('Units')
13 ax.set_title('Exponential vs. Linear performance')
14 
15 #在文本用添加数学表达式
16 ax.set_title("Exponential ($x^2$) vs. Linear ($x$) performance")

 

posted on 2018-03-09 19:22  郑哲  阅读(171)  评论(0编辑  收藏  举报