import matplotlibpyplot as plt# 定义数据parameters = 质量 体积 赤道半径 极地半径 体积平均半径 椭圆度 平均密度 重力 加速度 逃逸速度 通用 邦德反照率 几何反照率 V波段幅度V 太阳辐照度 黑体温 转动惯量 J2 天然卫星数量 行星环系统saturn_values = 56832 82713 60268 54364 58232 009796 68
由于参数列表中包含字符串和数字,所以在绘制条形图时出现了错误。修改方法是将字符串转换为相应的数字或者将数字转换为字符串以进行比较。
以下是修改后的代码:
import matplotlib.pyplot as plt
定义数据
parameters = ['质量', '体积', '赤道半径', '极地半径', '体积平均半径', '椭圆度', '平均密度', '重力', '加速度', '逃逸速度', '通用', '邦德反照率', '几何反照率', 'V波段幅度V', '太阳辐照度', '黑体温', '转动惯量', 'J2', '天然卫星数量', '行星环系统'] saturn_values = [568.32, 82713, 60268, 54364, 58232, 0.09796, 687, 11.19, 8.96, 35.5, 37.931, 0.342, 0.499, -8.91, 14.82, 81, 0.21, 16298, 83, '是的'] earth_values = [5.9722, 108.321, 6378.1, 6356.8, 6371, 0.00335, 5513, 9.82, 9.78, 11.19, 0.3986, 0.306, 0.434, -3.99, 1361, 254, 0.3308, 1082.63, 1, '不']
创建图表
plt.figure(figsize=(12, 6))
绘制条形图
plt.bar(parameters, [float(val) if isinstance(val, str) and val.replace('.', '', 1).isdigit() else float('nan') for val in saturn_values], label='Saturn', alpha=0.5, color='b') plt.bar(parameters, [float(val) if isinstance(val, str) and val.replace('.', '', 1).isdigit() else float('nan') for val in earth_values], label='Earth', alpha=0.5, color='r')
添加图例
plt.legend()
添加标题和标签
plt.title('Comparison of Parameters between Saturn and Earth') plt.xlabel('Parameters') plt.ylabel('Values')
自动调整标签旋转
plt.xticks(rotation=90)
显示图表
plt.show(
原文地址: http://www.cveoy.top/t/topic/hEK7 著作权归作者所有。请勿转载和采集!