练习一
为了对某一产品进行合理定价,我们对此类商品进行了试销实验,价格与需求量数据如下。利用图表分析规律。
price = [60,80,40,30,70,90,95]
sales = [100,50,120,135,65,45,40]
代码如下:
import matplotlib.pyplot as plt
import matplotlib
font = {'family':'SimHei',
'weight':'bold',
'size':12
}
matplotlib.rc("font",**font) #全局字体格式设置
price = [60,80,40,30,70,90,95]
sales = [100,50,120,135,65,45,40]
plt.scatter(price,sales) #绘制散点图
plt.xlabel('价格')
x_t = range(20,100,10)
x_l = [f'{i}元' for i in x_t]
plt.xticks(x_t,x_l) #设置x轴刻度及刻度标签
plt.ylabel('需求')
y_t = range(30,145,10)
y_l = [f'{i}件' for i in y_t]
plt.yticks(y_t,y_l) #设置y轴刻度及刻度标签
#为各点设置注释
for x,y in zip(price,sales):
plt.annotate('({},{})'.format(x,y),(x,y),(x-5,y+5))
plt.title('需求与价格关系图') #设置标题
plt.savefig('需求与价格关系图.png') #保存图片
plt.show()
绘得图表如下:
从图可以看出,需求量与该商品的价格呈负相关,随着商品价格的提高,需求量呈直线下降趋势。
练习2
电影数据如下:
movies_name = [“变身特工”,“美丽人生”,“鲨海逃生”,“熊出没·狂野大陆”]
day_12 = [2358,399,2358,362]
day_13 = [12357,156,2045,168]
day_14 = [15746,312,4497,319]
需求:
• 直观体现出不同电影近三天的票房的对比情况
代码如下:
import matplotlib.pyplot as plt
import matplotlib
font = {'family':'SimHei',
'weight':'bold',
'size':12
}
matplotlib.rc("font",**font) #设置全局字体格式
movies_name = ["变身特工","美丽人生","鲨海逃生","熊出没·狂野大陆"]
day_12 = [2358,399,2358,362]
day_13 = [12357,156,2045,168]
day_14 = [15746,312,4497,319]
#求得三天的x轴刻度
x_t_13 = range(len(movies_name))
x_t_12 = [i-0.3 for i in x_t_13]
x_t_14 = [i+0.3 for i in x_t_13]
#绘制直方图
plt.bar(x_t_12,day_12,width=0.3 ,label='day_12')
plt.bar(x_t_13,day_13,width=0.3 ,label='day_13')
plt.bar(x_t_14,day_14,width=0.3 ,label='day_14')
#定义的自动加注释的函数
def auto_annotate(x_t,y_t):
for x,y in zip(x_t,y_t):
plt.annotate(f'{y}',(x,y),(x,y+10))
auto_annotate(x_t_12,day_12)
auto_annotate(x_t_13,day_13)
auto_annotate(x_t_14,day_14)
plt.legend() #添加图例
plt.xticks(x_t_13,movies_name,rotation=45) #设置X轴刻度及刻度标签
day = day_12 + day_13 + day_14
plt.yticks(range(min(day),max(day)+1000,1000)) #设置y轴刻度
plt.title('四部电影三日票房') #添加标题
plt.savefig('四部电影三日票房.png') #保存图片
plt.show()
生成图表如下: