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")