matplotlib.pyplot 柱形图报错
lianjia_position = lianjia['位置']x = lianjia_position.index
y = lianjia_position.values
plt.figure(figsize=(10,5)) #定义画布大小
plt.bar(x,y,color = 'g')
plt.title('爬取的前20个数据的位置分析柱状图',fontsize = 20) #定义图片标题,字体大小为20
plt.xlabel('位置',fontsize = 18) #定义x轴标题,字体大小为18
plt.ylabel('数量',fontsize = 18) #定义y轴标题,字体大小为18
plt.tick_params(labelsize = 14) #设置坐标轴字体大小
plt.xticks(rotation = 90) #将x轴旋转90度显示
#显示网格线
plt.grid()
#用text显示数值
for a,b in zip(x,y):
plt.text(a,b + 50,'%s' %b,ha = 'center',va = 'bottom',fontsize = 10)
Traceback (most recent call last):
File "c:/Users/86173/Desktop/CODE/lianjia_analytical.py", line 76, in <module>
plt.text(a,b + 50,'%s' %b,ha = 'center',va = 'bottom',fontsize = 10)
TypeError: can only concatenate str (not "int") to str 发个代码都只发一半,这么节约的么 qq1151985918 发表于 2021-1-18 16:05
发个代码都只发一半,这么节约的么
前面的应该不会出错,就没发 数字和字符串不能用+拼接,把50变成字符串再拼接。 樊敬礼 发表于 2021-1-18 16:10
前面的应该不会出错,就没发
不会出错我们也不知道前边是啥啊?你让我们瞪眼睛瞪出来问题出在哪儿么?我们也得运行看报错理逻辑啊兄弟 qq1151985918 发表于 2021-1-18 16:13
不会出错我们也不知道前边是啥啊?你让我们瞪眼睛瞪出来问题出在哪儿么?我们也得运行看报错理逻辑啊兄弟
import numpy as np #数组运算
import pandas as pd #数据处理
import matplotlib.pyplot as plt #可视化
#matplotlib inline
plt.rcParams['font.sans-serif'] = 'SimHei' # 使图形中的中文正常编码显示
plt.rcParams['axes.unicode_minus'] = False # 使坐标轴刻度表签正常显示正负号
lianjia = pd.read_csv(r'C:\Users\86173\Desktop\lianjia.csv',encoding='utf-8-sig')
樊敬礼 发表于 2021-1-18 16:26
import numpy as np #数组运算
import pandas as pd #数据处理
import matplotlib.pyplot as plt #可视 ...
import numpy as np #数组运算
import pandas as pd #数据处理
import matplotlib.pyplot as plt #可视化
#matplotlib inline
plt.rcParams['font.sans-serif'] = 'SimHei' # 使图形中的中文正常编码显示
plt.rcParams['axes.unicode_minus'] = False # 使坐标轴刻度表签正常显示正负号
lianjia = pd.read_csv(r'C:\Users\86173\Desktop\lianjia.csv',encoding='utf-8-sig')
#更改列名
lianjia = lianjia.rename(columns={'name':'名字','price':'总价','area_price':'单价','area':'面积','position':'位置','room_type':'房型'})
#创建关于位置的柱状图
lianjia_position = lianjia['位置']
x = lianjia_position.index
y = lianjia_position.values
plt.figure(figsize=(10,5)) #定义画布大小
plt.bar(x,y,color = 'g')
plt.title('爬取的前20个数据的位置分析柱状图',fontsize = 20) #定义图片标题,字体大小为20
plt.xlabel('位置',fontsize = 18) #定义x轴标题,字体大小为18
plt.ylabel('数量',fontsize = 18) #定义y轴标题,字体大小为18
plt.tick_params(labelsize = 14) #设置坐标轴字体大小
plt.xticks(rotation = 90) #将x轴旋转90度显示
#显示网格线
plt.grid()
#用text显示数值
for a,b in zip(x,y):
plt.text(a,b + str(50),'%.0f' %b,ha = 'center',va = 'bottom',fontsize = 10)
plt.tight_layout()
plt.show()
suchocolate 发表于 2021-1-18 16:12
数字和字符串不能用+拼接,把50变成字符串再拼接。
plt.text(a,b + str(50),'%.0f' %b,ha = 'center',va = 'bottom',fontsize = 10)老哥是这样吗? 樊敬礼 发表于 2021-1-18 16:31
plt.text(a,b + str(50),'%.0f' %b,ha = 'center',va = 'bottom',fontsize = 10)老哥是这样吗?
对,不过不用str,plt.text(a, b + '50', '%.0f' % b, ha='center', va='bottom', fontsize= 10)直接这样:
页:
[1]