写一个python代码读取我mysql80数据库中data表中的总价转化为整型和小区名称的数据从中选取总价最高的10个二手房y轴展示小区名称x轴展示总价柱子由长开始到短的结束每条柱都染上不同颜色制成柱状图展示出来
以下是一个实现该需求的Python代码:
import mysql.connector
import matplotlib.pyplot as plt
import random
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
# 从数据库中查询数据
mycursor = mydb.cursor()
mycursor.execute("SELECT total_price, community_name FROM data")
data = mycursor.fetchall()
# 将总价转化为整型
data = [(int(price), name) for price, name in data]
# 按总价从高到低排序,选取前10个
top_10 = sorted(data, reverse=True)[:10]
# 生成柱状图数据和颜色
heights = [price for price, name in top_10]
labels = [name for price, name in top_10]
colors = [tuple(random.random() for _ in range(3)) for _ in range(len(top_10))]
# 绘制柱状图
plt.barh(labels, heights, color=colors)
# 设置图表标题和轴标签
plt.title("Top 10 Second-hand Houses by Total Price")
plt.xlabel("Total Price")
plt.ylabel("Community Name")
# 显示图表
plt.show()
需要注意的是,上述代码中的host、user、password和database需要根据实际情况进行修改。此外,为了使每条柱都染上不同颜色,我们使用了random模块生成了随机颜色。如果需要保证颜色的一致性,可以手动指定颜色
原文地址: http://www.cveoy.top/t/topic/dVtp 著作权归作者所有。请勿转载和采集!