鱼C论坛

 找回密码
 立即注册
查看: 1928|回复: 5

[已解决]python可以帮忙看一下哪里错了吗,运行不出来图

[复制链接]
发表于 2021-11-16 16:49:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 金倩倩的美梦 于 2021-11-16 16:52 编辑

文件(中国进出口总额年度数据.csv):
指标        进出口总额(人民币)(亿元)        出口总额(人民币)(亿元)        进口总额(人民币)(亿元)        进出口差额(人民币)(亿元)        进出口总额(美元)(百万美元)        出口总额(美元)(百万美元)        进口总额(美元)(百万美元)        进出口差额(美元)(百万美元)        数据来源:国家统计局
2020年        321557        179326        142231        37096                                       
2019年        315627.32        172373.63        143253.69        29119.94        4577891.07 2499482.09 2078408.98        421073.11       
2018年        305008.13        164127.81        140880.32        23247.49        4622415        2486682        2135734        350948       
2017年        278099.24        153309.43        124789.81        28519.62        4107138        2263345        1843793        419552       
2016年        243386.46        138419.29        104967.17        33452.12        3685557.41 2097631.19 1587926.22 509705       
2015年        245502.93        141166.83        104336.1        36830.73        3953032.72 2273468.22 1679564.5 593903.73       
2014年        264241.77        143883.75        120358.03        23525.72        4301527        2342293        1959235        383058       
2013年        258168.89        137131.43        121037.46        16093.98        4158993        2209004        1949989        259015       
2012年        244160.21        129359.25        114800.96        14558.29        3867119        2048714        1818405        230309       
2011年        236401.95        123240.56        113161.39        10079.16        3641864        1898381        1743484        154897       
2010年        201722.34        107022.84        94699.5        12323.34        2974001        1577754        1396247        181507       
2009年        150648.06        82029.69        68618.37        13411.32        2207535        1201612        1005923        195689       
2008年        179921.47        100394.94        79526.53        20868.41        2563255        1430693        1132562        298131       
2007年        166924.07        93627.14        73296.93        20330.2        2176175        1220060        956115        263944       
2006年        140974.74        77597.89        63376.86        14221.03        1760438        968978        791461        177517       
2005年        116921.77        62648.09        54273.68        8374.41        1421906        761953        659953        102001       
2004年        95539.09        49103.33        46435.76        2667.57        1154554        593326        561229        32097       
2003年        70483.45        36287.89        34195.56        2092.32        850988        438228        412760        25468       
2002年        51378.15        26947.87        24430.27        2517.6        620766        325596        295170        30426       
2001年        42183.62        22024.44        20159.18        1865.26        509651        266098        243553        22545       
题目:
# 读取中国进出口总额年度数据.csv,利用学过的Matplotlib图形对数据的特征和分布进行绘图展示。
# 要求:须有散点图、饼图、直方图、折线图、箱体图
# 试分析:
# 1.年度进出口总额的折线图、散点图
# 2.2019年出口总额(人民币)(亿元)、进口总额(人民币)(亿元)的饼图和直方图
# 3.出口总额(人民币)(亿元)、进口总额(人民币)(亿元)的箱体图
我做的:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
data=np.loadtxt('中国进出口总额年度数据.csv',delimiter=',',skiprows=1,dtype=str)
print(data)
arr1=plt.figure(figsize=(12,12))
arr2= arr1.add_subplot(2, 1, 1)
plt.plot(data[:,0],data[:,1],'b--')
plt.legend('年度进出口总额')
plt.xlabel('时间')
plt.xticks(range(0, 20, 1), data[range(0, 20, 1), 0], rotation=45)
plt.ylabel('进出口总额(人民币)(亿元)')
plt.title('年度进出口总额折线图')


arr3= arr1.add_subplot(2, 1, 2)
plt.scatter(data[:, 0], data[:, 1], marker='o')
plt.legend('年度进出口总额')
plt.xlabel('时间')
plt.xticks(range(0, 20, 1), data[range(0, 20, 1), 0], rotation=45)
plt.ylabel('进出口总额(人民币)(亿元)')
plt.title('年度进出口总额散点图')

plt.show()
# 饼图
arr4= plt.figure(figsize=(12, 12))
arr5= arr4.add_subplot(2, 1, 1)
ex = [0.01, 0.01]
label1=('出口总额(美元)(百万美元)' ,'进口总额(美元)(百万美元)')

plt.pie(data[2,6:8], explode=ex, labels=label1, autopct='%1.1f%%')
plt.title('2019年进出口总额饼图')
# 直方图
arr7= arr4.add_subplot(2, 1, 2)
plt.bar(range(2),data[2, 6:8],width=0.5)
label2=['2019年出口总额','2019年进口总额']
plt.xticks(range(2),label2)
plt.xlabel('类别')
plt.ylabel('美元(百万美元)')
plt.title('2019年进出口总额直方图')
plt.show()


gdp=(list(data[:,6:7]))
plt.boxplot(gdp, notch=True, labels=['出口总额','进口总额'], meanline=True)
p3 = plt.figure(figsize=(10, 10))
plt.xlabel('年份')
plt.ylabel('美元(百万美元)')
plt.title('进出口总额箱线图')
plt.show()



谢谢各位大佬,我没有权限贴原文件
最佳答案
2021-11-16 21:37:05

用你的数据画的。
1)数据变成字符串了,得转换成类型。
2)两组数据得分开,然后放到一个列表里。
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
data = np.loadtxt('test.csv', delimiter=',', skiprows=1, dtype=str)

new_a = []
new_b = []
for item in data[:, 3:4]:
    new_a.append(float(item[0]))
for item in data[:, 4:5]:
    new_b.append(float(item[0]))
gdp = [new_a, new_b]
plt.boxplot(gdp, notch=True, labels=['出口总额', '进口总额'], meanline=True)
plt.xlabel('年份')
plt.ylabel('美元(百万美元)')
plt.title('进出口总额箱线图')
plt.show()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-16 17:30:45 | 显示全部楼层
2020缺少数据?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-16 17:50:47 | 显示全部楼层
屏幕截图 2021-11-16 174712.png
用你的代码运行能看到图,没什么问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-16 19:19:57 From FishC Mobile | 显示全部楼层
suchocolate 发表于 2021-11-16 17:50
用你的代码运行能看到图,没什么问题。

直方图和箱线图运行不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-16 19:20:38 From FishC Mobile | 显示全部楼层
suchocolate 发表于 2021-11-16 17:30
2020缺少数据?

老师给的原文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-16 21:37:05 | 显示全部楼层    本楼为最佳答案   

用你的数据画的。
1)数据变成字符串了,得转换成类型。
2)两组数据得分开,然后放到一个列表里。
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
data = np.loadtxt('test.csv', delimiter=',', skiprows=1, dtype=str)

new_a = []
new_b = []
for item in data[:, 3:4]:
    new_a.append(float(item[0]))
for item in data[:, 4:5]:
    new_b.append(float(item[0]))
gdp = [new_a, new_b]
plt.boxplot(gdp, notch=True, labels=['出口总额', '进口总额'], meanline=True)
plt.xlabel('年份')
plt.ylabel('美元(百万美元)')
plt.title('进出口总额箱线图')
plt.show()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 18:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表