开发者社区> fjie> 正文

python matplotlib绘图时图例显示问题

简介: 在使用python matplotlib库绘制数据图时,需要使用图例标注数据类别,但是传参时,会出现图例解释文字只显示第一个字符,需要在传参时在参数后加一个逗号(应该是python语法,加逗号,才可以把参数理解为元组类型...
+关注继续查看

在使用python matplotlib库绘制数据图时,需要使用图例标注数据类别,但是传参时,会出现图例解释文字只显示第一个字符,需要在传参时在参数后加一个逗号(应该是python语法,加逗号,才可以把参数理解为元组类型吧),就可解决这个问题,示例如下

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator 
from pylab import mpl

xmajorLocator = MultipleLocator(24 * 3) #将x轴主刻度标签设置为24 * 3的倍数
ymajorLocator = MultipleLocator(100 * 2) #将y轴主刻度标签设置为100 * 2的倍数 

# 设置中文字体
mpl.rcParams['font.sans-serif'] = ['SimHei']

# 导入文件数据
data = np.loadtxt('H:/dataset/爸爸去哪儿/统计数据_每小时_ba.csv', delimiter=',', dtype=int)

# 截取数组数据
x = data[:, 0]
y = data[:, 1]


plt.figure(num=1, figsize=(8, 6))

ax = plt.subplot(111)
ax.xaxis.set_major_locator(xmajorLocator) 
ax.yaxis.set_major_locator(ymajorLocator) 
ax.xaxis.grid(True, which='major') #x坐标轴的网格使用主刻度
ax.yaxis.grid(True, which='major') #x坐标轴的网格使用主刻度

plt.xlabel('时间索引')
plt.ylabel('活动频数')
plt.title('折线图')
plt.xlim(0, 1152)
plt.ylim(0, 2200)
#plt.plot(x, y, 'rs-')
line1 = ax.plot(x, y, 'b.-')
ax.legend(line1, ('微博'))
plt.show()
显示效果如下

代码修改

from pylab import mpl

xmajorLocator = MultipleLocator(24 * 3) #将x轴主刻度标签设置为24 * 3的倍数
ymajorLocator = MultipleLocator(100 * 2) #将y轴主刻度标签设置为100 * 2的倍数 

# 设置中文字体
mpl.rcParams['font.sans-serif'] = ['SimHei']

# 导入文件数据
data = np.loadtxt('H:/dataset/爸爸去哪儿/统计数据_每小时_ba.csv', delimiter=',', dtype=int)

# 截取数组数据
x = data[:, 0]
y = data[:, 1]


plt.figure(num=1, figsize=(8, 6))

ax = plt.subplot(111)
ax.xaxis.set_major_locator(xmajorLocator) 
ax.yaxis.set_major_locator(ymajorLocator) 
ax.xaxis.grid(True, which='major') #x坐标轴的网格使用主刻度
ax.yaxis.grid(True, which='major') #x坐标轴的网格使用主刻度

plt.xlabel('时间索引')
plt.ylabel('活动频数')
plt.title('折线图')
plt.xlim(0, 1152)
plt.ylim(0, 2200)
#plt.plot(x, y, 'rs-')
line1 = ax.plot(x, y, 'b.-')
ax.legend(line1, ('微博',)) # 多加一个逗号
plt.show()

显示效果如下


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
WPF中StringFormat的用法--显示特定位数的数字
原文:WPF中StringFormat的用法--显示特定位数的数字 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huangli321456/article/details/80324458 ...
1039 0
The APR based Apache Tomcat Native library which allows optimal performance in production 问题的解决
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:XXXX 出现原因分析: Tomcat建议使用apache的apr,来更好的运
1295 0
VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
Background MSDN中对于在不同的配置下Link的LIB作了说明: C Runtime Library: 开关 对应的库 版本 /MD MSVCRT.
1001 0
关于Matlab作图的若干问题
看到了北京一则新闻,想到如何测试双向镜子?百度之。              只要做以下简单的测试:把你的指甲尖放在镜子表面,如果在指甲尖与倒映图像之间有间隙,那就是真的镜子。然而,如果你的指甲尖能直接碰触到指甲反射影像,当心!那就是双向镜了! 一、matlab里如何显示点的坐标? 在图里显示点坐标                工具栏中有一个 "Data Cursor"按钮,点击之,箭头变成小十字,点要显示坐标的位置,就出来了。
1041 0
Qt4项目迁移到Qt5问题:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets .
文章来源:http://blog.csdn.net/ccf19881030/article/details/18220447 问题一:错误:C1083: 无法打开包括文件:“QApplication”: No such file or directory 出现原因:Qt5里不再用QtGui模块,而是使用QtWidgets模块。
1853 0
jrtplib跨网络通讯NAT穿透问题解决方法
前几篇文章讲了使用jrtplib在Android和pc端进行通讯的方法 在实际项目中,手机端和pc端一般不会在同一个子网内,两者之间联络可能要走路由器之类的NAT(网络地址转换 Network Address Translation))设备   假设服务端IP地址为 112.
1141 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
20915 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
10677 0
python matplotlib.plot画图显示中文乱码的问题
python matplotlib.plot画图显示中文乱码的问题
237 0
+关注
fjie
计算机学生,研究方向为数据挖掘与机器学习,现阶段主要兴趣为深度学习方法在图/网络等非常规(non Euclidean domain)数据中的应用。Github pages: flycser.github.io,Email: hfut_jf@aliyun.com
81
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载