写一个python代码读取我mysql80数据库中data表中的总价转化为整型和小区名称的数据从中选取总价最高的10个二手房y轴展示小区名称x轴展示总价每条柱都染上不同颜色制成水平柱状图要求总价越高的小区展示在越上方
以下是实现代码:
import mysql.connector
import matplotlib.pyplot as plt
# 连接MySQL数据库
cnx = mysql.connector.connect(user='username', password='password',
host='localhost', database='mydatabase', port='3306')
cursor = cnx.cursor()
# 从data表中读取总价和小区名称的数据,按总价降序排列,选取前10个数据
query = ("SELECT CAST(`总价` AS SIGNED), `小区名称` FROM `data` ORDER BY CAST(`总价` AS SIGNED) DESC LIMIT 10")
cursor.execute(query)
# 构建柱状图数据
x = []
y = []
colors = ['r', 'g', 'b', 'c', 'm', 'y', 'k', 'orange', 'purple', 'pink']
i = 0
for (price, location) in cursor:
x.append(price)
y.append(location)
i += 1
# 绘制水平柱状图
plt.barh(y, x, color=colors, edgecolor='black')
# 设置图表标题和坐标轴标签
plt.title('Top 10 houses by price')
plt.xlabel('Price')
# 将y轴倒序排列,使总价高的小区展示在越上方
plt.gca().invert_yaxis()
# 显示图表
plt.show()
# 关闭数据库连接
cursor.close()
cnx.close()
请注意,需要将代码中的username、password、mydatabase等字段替换为实际的数据库用户名、密码和数据库名称。此外,还需要安装并导入mysql-connector-python和matplotlib库
原文地址: https://www.cveoy.top/t/topic/dVDN 著作权归作者所有。请勿转载和采集!