如何使用seaborn绘制组合图
昨天教程 股评师分析报告文本情感分析预测股价 最后绘制的图片
横坐标都是一样的,我想将价格与情感得分合并到一个图中,这样更方便查看看趋势走势是否一致性。如下图
今日主要是学习如何将共享某一坐标轴的两个图合并到一个图。
实验数据
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
Month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June',
'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
#create list for made up average temperatures
Avg_Temp = [35, 45, 55, 65, 75, 85, 95, 100, 85, 65, 45, 35]
#create list for made up average percipitation %
Avg_Percipitation_Perc = [.90, .75, .55, .10, .35, .05, .05, .08, .20, .45, .65, .80]
data = {'Month': Month,
'Avg_Temp': Avg_Temp,
'Avg_Percipitation_Perc': Avg_Percipitation_Perc}
#将字典转为dataframe
df = pd.DataFrame(data)
df
#条形图
plt.title('Average Temperature by Month')
sns.barplot(x='Month',
y='Avg_Temp',
data=df,
palette='summer')
plt.title('Average Percipitation Percentage by Month')
sns.lineplot(x='Month',
y='Avg_Percipitation_Perc',
data=df,
sort=False)
上面两个图横坐标都是month,我们要想办法合并到一个图中。也就是第二个图复制第一个图的横坐标系,在第一个图基础上叠加上折线图
#绘制基础图层
fig, ax1 = plt.subplots(figsize=(10,6))
color = 'tab:green'
ax1.set_title('Average Percipitation Percentage by Month', fontsize=16)
ax1.set_xlabel('Month', fontsize=16)
ax1.set_ylabel('Avg Temp', fontsize=16, color=color)
#第一图条形图
ax1 = sns.barplot(x='Month', y='Avg_Temp', data = df, palette='summer')
ax1.tick_params(axis='y')
#twinx共享x轴(类似的语法,如共享y轴twiny)
ax2 = ax1.twinx()
color = 'tab:red'
#第二个图,折线图
ax2.set_ylabel('Avg Percipitation %', fontsize=16, color=color)
ax2 = sns.lineplot(x='Month', y='Avg_Percipitation_Perc', data = df, sort=False, color=color)
ax2.tick_params(axis='y', color=color)
#显示绘制结果
plt.show()
现在学会了,可以复习下昨天的教程 股评师分析报告文本情感分析预测股价,想办法实现股价与情感分放到一个图中。
近期文章
课件获取方式,请在公众号后台回复关键词“20191212”
觉得本文有用,请不吝点赞评论转发~谢谢支持~