pyplot画图示例
pyplot画图示例
matplotlib 混用
import matplotlib
import matplotlib as mpl
import matplotlib.pyplot as plt
import plotly.plotly
import plotly.tools as tls
plotly.offline.init_notebook_mode(connected=True) # initiate notebook for offline plot
font = {
'family' : 'SimHei',
'style':'normal'
}
# 导入模块
import pandas as pd
import matplotlib.pyplot as plt
# 设置绘图风格
plt.style.use('ggplot')
# 设置中文编码和负号的正常显示
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['font.sans-serif']=['SimHei'] ##字体,避免中文乱码
# 读取需要绘图的数据
df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d')
#sub_data = df.loc[(df.date >= '2019-03-01')&(df.date <='2017-08-09')&(df.type =='A')]
sub_data = df
# 设置图框的大小
fig = plt.figure(figsize=(12,10))
# 绘图
plt.plot(sub_data.日期, # x轴数据
sub_data.订单实收收入, # y轴数据
linestyle = '-', # 折线类型
linewidth = 2, # 折线宽度
color = 'steelblue', # 折线颜色
marker = 'o', # 点的形状
markersize = 6, # 点的大小
markeredgecolor='black', # 点的边框色
markerfacecolor='brown') # 点的填充色
# 添加标题和坐标轴标签
plt.title('订单实收收入')
plt.xlabel('日期')
plt.ylabel('订单实收收入')
# 剔除图框上边界和右边界的刻度
#plt.tick_params(top = 'False', right = 'False')
# 获取图的坐标信息
ax = plt.gca()
# 设置日期的显示格式
date_format = mpl.dates.DateFormatter("%Y-%m-%d")
ax.xaxis.set_major_formatter(date_format)
# 设置x轴显示多少个日期刻度
#xlocator = mpl.ticker.LinearLocator(10)
# 设置x轴每个刻度的间隔天数
xlocator = mpl.ticker.MultipleLocator(1)
ax.xaxis.set_major_locator(xlocator)
# 为了避免x轴日期刻度标签的重叠,设置x轴刻度自动展现,并且45度倾斜
fig.autofmt_xdate(rotation = 45)
# 显示图形
#plt.show()
plotly_fig = tls.mpl_to_plotly(fig)
plotly_fig['layout'].update(xaxis= {'tickformat':"%y/%m/%d"}) #layout可以交互显示数据
plotly.offline.iplot(plotly_fig)
另外一个例子
data['订单实收收入_diff_1'] = data['订单实收收入'].diff(1)
data['订单实收收入_diff_2'] = data['订单实收收入_diff_1'].diff(1)
fig = plt.figure(figsize=(12,6))
plt.plot(data.日期, # x轴数据
data.订单实收收入_diff_2, # y轴数据
linestyle = '-', # 折线类型
linewidth = 2, # 折线宽度
color = 'steelblue', # 折线颜色
marker = 'o', # 点的形状
markersize = 6, # 点的大小
markeredgecolor='black', # 点的边框色
markerfacecolor='brown') # 点的填充色
#plt.show()
plotly_fig = tls.mpl_to_plotly(fig)
plotly_fig['layout'].update(xaxis= {'tickformat':"%y/%m/%d"}) #layout可以交互显示数据
plotly.offline.iplot(plotly_fig)