对现有数据有如下操作要求,第一:横坐标必须为时间,第二,纵坐标的表示单位不相同。本次要处理的数据,纵坐标是次数(10-1000次)和情感值(0-1)。
如下图所示:
代码实现:
import numpy as np # 导入各个模块
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 设置字体为黑体
mpl.rcParams['axes.unicode_minus'] = False # 解决中文字体负号显示不正常问题
xls_file = pd.ExcelFile('E:/数据分析及可视化/待处理文本.xlsx') # 打开工作簿
table = xls_file.parse('Sheet1') # 打开第一张表
df = table.set_index('日期') # 将年份设为索引
fig = plt.figure(figsize=(8,6))
ax1 = fig.add_subplot(111)
df['微博评论情感值'].plot(ax=ax1,ls='-',alpha=1.0,label='微博评论情感值',color='#000000') # alpha表示点的透明程度
plt.xlabel('日期')
plt.xticks(rotation = 360)
ax1.set_yticks(np.arange(0,1.2,0.1)) # 设置左边纵坐标刻度
ax1.set_ylabel('微博评论情感值') # 设置左边纵坐标标签
plt.legend(loc=2) # 设置图例在左上方
ax2 = ax1.twinx()
df['消费次数'].plot(ax=ax2,grid=True,label='消费次数',style='go-',alpha=0.7)
ax2.set_yticks(np.arange(0,1500,500)) # 设置右边纵坐标刻度
ax2.set_ylabel('消费次数(次)',rotation = 270) # 设置右边纵坐标标签
plt.legend(loc=1) # 设置图例在右上方
plt.title('微博评论情感值与消费评论次数变化图') # 给整张图命名
plt.show()
处理后图片如下: