# coding:utf-8
import pandas as pd
import numpy as np
from matplotlib import pylab as plt # 导入数据可视化库Matplotlib并重命名为plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
newData = pd.read_csv("newCreateData.csv")
newData["DATE"] = pd.to_datetime(newData["DATE"]) # 转换日期格式
newTest = newData[0:11]
plt.plot(newTest["DATE"], newTest["VALUE"]) # plot()方法分别对应折线图中的x,y坐标
plt.xticks(rotation = 45) # 横坐标的数据旋转45°
plt.xlabel("DATE") # X轴取名为DATE
plt.ylabel("VALUE") # Y轴取名为VALUE
plt.title(u"润博的数据分析学习笔记") # 标题取名
plt.show() # 可视化显示
print("*********子图绘制****************")
# 创建一个画图对象,相当于一个画图区域
fig = plt.figure(figsize=(6,6)) # figsize指定给个图大小(两个数字分别表示横轴纵轴)
# 前面两个数字代表行数,列数,最后一个数字代表第几个图,从左到右,从上到下看
ax1 = fig.add_subplot(2, 2, 1) # 2行2列的图,相当于四个图,1是第一个
ax2 = fig.add_subplot(2, 2, 3) # 2行2列的图,相当于四个图,3是第三个
ax4 = fig.add_subplot(2, 2, 4) # 2行2列的图,相当于四个图,4是第四个
ax1.plot(np.arange(5), np.arange(5)) # 子图1绘制
ax2.plot(np.arange(10), np.random.random(size=10)) # 子图4随机绘制
plt.title(u"润博的数据分析学习笔记") # 标题取名
plt.show()
fig1 = plt.figure(figsize=(6,3))
# 下面为在一个区域画2个图
plt.plot(np.random.random(size=12), newData[0:12]["VALUE"], c = "red") # c指定颜色
plt.plot(np.random.random(size=12), newData[12:24]["VALUE"], c = "blue")
plt.title(u"润博的数据分析学习笔记") # 标题取名
plt.show()
print("********循环画5个图*************")
fig2 = plt.figure(figsize=(10,6))
colors = ["red", "yellow", "blue", "black", "pink"]
for i in range(5):
fIndex = i * 12
eIndex = (i + 1) * 12
subset = newData[fIndex:eIndex]
plt.plot(np.arange(1,13), subset["VALUE"], c = colors[i])
plt.title(u"润博的数据分析学习笔记") # 标题取名
plt.show()
print("**********图标绘制*************")
x = np.linspace(0, 10, 20) # 构造20个从0到10均匀增长的数
fig, axes = plt.subplots() # 创建一个fig和axes对象
axes.set_xlabel('x lable')
axes.set_ylabel('y lable')
axes.set_title('title')
axes.plot(x, x**2) # x**2表示x的平方
axes.plot(x, x**3) # x**3表示x的立方
# loc 参数标记图例位置,1,2,3,4 依次代表:右上角、左上角、左下角,右下角;0 代表自适应(可用'best'替代)
axes.legend(["y = x**2", "y = x**3"], loc='best')
plt.title(u"润博的数据分析学习笔记") # 标题取名
plt.show()
微信公众号:TSL00001111