1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【Python_绘图】折线图与散点图

【Python_绘图】折线图与散点图

时间:2020-11-29 17:57:53

相关推荐

【Python_绘图】折线图与散点图

接续博文 “【Python_绘图】折线图”CSDN

功能

数据:读取表格(可指定Sheet表……也可指定Sheet表中的特定列)绘图样式:多条折线图+散点图 →标记点折线图设置参数:设置轴标题、添加分界线等

代码

import matplotlib.pyplot as pltimport xlrdimport numpy as npimport seaborn as sns# 设置字体格式,以显示中文plt.rcParams['font.sans-serif'] = ['Times New Roman']x_data = []y1_data = []y2_data = []y3_data = []y4_data = []y5_data = []y6_data = []# 读取表格数据data = xlrd.open_workbook(r'D:\mekong_NLP\作图\0512 作图数据汇总\图三 情感折线与词云\0606 情感分值作图表.xlsx')table = data.sheets()[0] # 表格中的Sheet1x_data = list(range(1971,,1))x_ticks=np.arange(1971,,5)#读取第x行cap1 = table.row_values(0)cap2 = table.row_values(1)cap3 = table.row_values(2)cap4 = table.row_values(3)cap5 = table.row_values(4)cap6 = table.row_values(5)for i in range(0, len(x_data)):y1_data.append(cap1[i])for i in range(0, len(x_data)):y2_data.append(cap2[i])for i in range(0, len(x_data)):y3_data.append(cap3[i])for i in range(0, len(x_data)):y4_data.append(cap4[i])for i in range(0, len(x_data)):y5_data.append(cap5[i])for i in range(0, len(x_data)):y6_data.append(cap6[i])#逐条 作折线图plt.plot(x_data, y1_data, c='crimson',linestyle=':',linewidth=2,label='China')plt.plot(x_data, y2_data, c='coral',linestyle=':',linewidth=2,label='Myanmar')plt.plot(x_data, y3_data, c='hotpink',linestyle=':',linewidth=2,label='Laos')plt.plot(x_data, y4_data, c='blue',linestyle=':',linewidth=2,label='Thailand')plt.plot(x_data, y5_data, c='lightsteelblue',linestyle=':',linewidth=2,label='Cambodia')plt.plot(x_data, y6_data, c='cornflowerblue',linestyle=':',linewidth=2,label='Vietnam')#逐条线 作散点图plt.scatter(x_data, y1_data, c='crimson',s=15)plt.scatter(x_data, y2_data, c='coral',s=15)plt.scatter(x_data, y3_data, c='hotpink',s=15)plt.scatter(x_data, y4_data, c='blue',s=15)plt.scatter(x_data, y5_data, c='lightsteelblue',s=15)plt.scatter(x_data, y6_data, c='cornflowerblue',s=15)#修改图 相关参数#plt.title('F1值随迭代次数的变化')plt.xticks(x_ticks)plt.tick_params(labelsize=16)#横纵标签大小plt.xlabel('Year',size=16)plt.ylabel('Sentiment score',size=16)plt.ylim(ymin=-0.80, ymax=0.80)plt.vlines(1991, -0.8, 0.8, colors="black", linestyles="dashed",linewidth=1)#分界线plt.vlines(1994, -0.8, 0.8, colors="black", linestyles="dashed",linewidth=1)plt.vlines(, -0.8, 0.8, colors="black", linestyles="dashed",linewidth=1)plt.vlines(, -0.8, 0.8, colors="black", linestyles="dashed",linewidth=1)leg=plt.legend(columnspacing=1,fontsize=16)#图例leg.get_frame().set_linewidth(0.0)#不显示右边与上边线sns.despine()#不显示右边与上边线plt.show()#绘图

效果示例

附:使线贴合纵轴

参考:python作图图形不贴着坐标轴?python作图图形不贴着坐标轴? - 知乎增添以下代码即可:

plt.xlim(1971,)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。