首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数中的matplotlib.pyplot与matplotlib.pyplot.scatter的问题

参数中的matplotlib.pyplot与matplotlib.pyplot.scatter的问题
EN

Stack Overflow用户
提问于 2020-02-20 22:05:09
回答 3查看 114关注 0票数 2

我的名字是路易斯·弗朗西斯科·戈麦斯(),我在中间Python >1 Matplotlib >Size课程中学习,这是属于DataCamp中的数据科学家的。我正在复制这门课程的练习,在这一部分中,你必须绘制一个散点图,其中点数的大小相当于各国的人口。我尝试用以下代码再现DataCamp的结果:

代码语言:javascript
复制
# load subpackage
import matplotlib.pyplot as plt

## load other libraries
import pandas as pd
import numpy as np

## import data
gapminder = pd.read_csv("https://assets.datacamp.com/production/repositories/287/datasets/5b1e4356f9fa5b5ce32e9bd2b75c777284819cca/gapminder.csv")
gdp_cap = gapminder["gdp_cap"].tolist()
life_exp = gapminder["life_exp"].tolist()

# create an np array that contains the population
pop = gapminder["population"].tolist()
pop_np = np.array(pop)


plt.scatter(gdp_cap, life_exp, s = pop_np*2)

# Previous customizations
plt.xscale('log') 
plt.xlabel('GDP per Capita [in USD]')
plt.ylabel('Life Expectancy [in years]')
plt.title('World Development in 2007')
plt.xticks([1000, 10000, 100000],['1k', '10k', '100k'])

# Display the plot
plt.show()

然而,得到这一点:

但从理论上讲,你需要做到这一点:

我不明白‘s in plt.scatter的论点有什么问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-20 22:14:03

你得按比例调整一下,

代码语言:javascript
复制
plt.scatter(gdp_cap, life_exp, s = pop_np*2/1000000)

标记大小,以点**2. 每名医生为单位

票数 2
EN

Stack Overflow用户

发布于 2020-02-20 22:17:11

这是因为你的尺寸太大了,缩小它。此外,不需要创建所有中间数组:

代码语言:javascript
复制
plt.scatter(gapminder.gdp_cap, 
            gapminder.life_exp, 
            s=gapminder.population/1e6)

输出:

票数 1
EN

Stack Overflow用户

发布于 2020-02-20 22:16:21

我觉得你应该用

代码语言:javascript
复制
plt.scatter(gdp_cap, life_exp, s = gdp_cap*2)

或者减少或缩小pop_np的规模

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60329218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档