关于Python pyecharts 的问题(已经找资料找了半天了)

Coding_not_found 2020-03-15 09:48:14
name=['A','B','C','D','E']
values=[1,2,3,4,5]
wordcloud.add("",name,values,word_size_range=[20,100],shape= "circle")

以上程序会抛出
TypeError: add() takes 3 positional arguments but 4 positional arguments (and 2 keyword-only arguments) were given

难道只能用官网上给的列表嵌套元组的形式吗?但我看到过类似我这样写的。。。。0.0
...全文
1578 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coding_not_found 2020-03-16
  • 打赏
  • 举报
回复
引用 5 楼 crifan的回复:
对于:
wordcloud.add("",name,values,word_size_range=[20,100],shape= "circle")

中的 wordcloud的add函数
去找了下,过程如下
google搜:
pyecharts add
找到
30分钟学会pyecharts数据可视化 - 知乎
人家写法是:
cloud.add(name = 'utils',attr = words,value = counts,
shape = "circle",word_size_range = (10,70))

-》也没有你的
wordcloud.add("",name
中的第一个,空字符串:""

找到官网文档
Documentation - pyecharts-en
中是:
"
WordCloud
WordCloud.add() signatures
add(name, attr, value, shape="circle", word_gap=20, word_size_range=None, rotate_step=45)

"
-》更没有你写的 第一个参数 空字符串 ""
->所以结论很明显:
看起来是:
你多传递了一个参数,第一个的空字符串 ""
实际上也不是,而是:
对照官网参数顺序:
name, attr, value, shape="circle", word_gap=20, word_size_range=None, .....

而你的是:
"",name,values,word_size_range=[20,100],shape= "circle"

很明显是(看起来是?):
你把参数的顺序搞错了吧?

(看起来)应该改为:

wordcloud.add(name,"",values,word_size_range=[20,100],shape= "circle")

注:我不是很确定你代码逻辑,需要你自己明确要给
name, attr, value
传递具体什么值。

所以以后:
-》不要随便参考别人(可能错误,可能是落后的,没更新的)代码
-》或者自己瞎猜一个(函数的参数,和顺序)

无论如何,都应该是:
-》改为正确的学习思路和方法
-》核心要点是:去找官网正规资料

注:
1.抽空会把你的情况,也整理到我即将发布的教程中的
Python新手小白常见错误和问题

2.关于如何掌握正确的学习方法和思路,详见(即将发布的)
学习方法思路及技术心得总结
非常感谢╰(*´︶`*)╯最后我用collections库里的counter统计词频后就可以了
Coding_not_found 2020-03-16
  • 打赏
  • 举报
回复
引用 5 楼 crifan的回复:
对于:
wordcloud.add("",name,values,word_size_range=[20,100],shape= "circle")

中的 wordcloud的add函数
去找了下,过程如下
google搜:
pyecharts add
找到
30分钟学会pyecharts数据可视化 - 知乎
人家写法是:
cloud.add(name = 'utils',attr = words,value = counts,
shape = "circle",word_size_range = (10,70))

-》也没有你的
wordcloud.add("",name
中的第一个,空字符串:""

找到官网文档
Documentation - pyecharts-en
中是:
"
WordCloud
WordCloud.add() signatures
add(name, attr, value, shape="circle", word_gap=20, word_size_range=None, rotate_step=45)

"
-》更没有你写的 第一个参数 空字符串 ""
->所以结论很明显:
看起来是:
你多传递了一个参数,第一个的空字符串 ""
实际上也不是,而是:
对照官网参数顺序:
name, attr, value, shape="circle", word_gap=20, word_size_range=None, .....

而你的是:
"",name,values,word_size_range=[20,100],shape= "circle"

很明显是(看起来是?):
你把参数的顺序搞错了吧?

(看起来)应该改为:

wordcloud.add(name,"",values,word_size_range=[20,100],shape= "circle")

注:我不是很确定你代码逻辑,需要你自己明确要给
name, attr, value
传递具体什么值。

所以以后:
-》不要随便参考别人(可能错误,可能是落后的,没更新的)代码
-》或者自己瞎猜一个(函数的参数,和顺序)

无论如何,都应该是:
-》改为正确的学习思路和方法
-》核心要点是:去找官网正规资料

注:
1.抽空会把你的情况,也整理到我即将发布的教程中的
Python新手小白常见错误和问题

2.关于如何掌握正确的学习方法和思路,详见(即将发布的)
学习方法思路及技术心得总结
非常感谢╰(*´︶`*)╯最后我用collections库里的counter统计词频后就可以了
crifan 2020-03-16
  • 打赏
  • 举报
回复
对于:
wordcloud.add("",name,values,word_size_range=[20,100],shape= "circle")

中的 wordcloud的add函数
去找了下,过程如下
google搜:
pyecharts add
找到
30分钟学会pyecharts数据可视化 - 知乎
人家写法是:
cloud.add(name = 'utils',attr = words,value = counts,
shape = "circle",word_size_range = (10,70))

-》也没有你的
wordcloud.add("",name
中的第一个,空字符串:""

找到官网文档
Documentation - pyecharts-en
中是:
"
WordCloud
WordCloud.add() signatures
add(name, attr, value, shape="circle", word_gap=20, word_size_range=None, rotate_step=45)

"
-》更没有你写的 第一个参数 空字符串 ""
->所以结论很明显:
看起来是:
你多传递了一个参数,第一个的空字符串 ""
实际上也不是,而是:
对照官网参数顺序:
name, attr, value, shape="circle", word_gap=20, word_size_range=None, .....

而你的是:
"",name,values,word_size_range=[20,100],shape= "circle"

很明显是(看起来是?):
你把参数的顺序搞错了吧?

(看起来)应该改为:

wordcloud.add(name,"",values,word_size_range=[20,100],shape= "circle")

注:我不是很确定你代码逻辑,需要你自己明确要给
name, attr, value
传递具体什么值。

所以以后:
-》不要随便参考别人(可能错误,可能是落后的,没更新的)代码
-》或者自己瞎猜一个(函数的参数,和顺序)

无论如何,都应该是:
-》改为正确的学习思路和方法
-》核心要点是:去找官网正规资料

注:
1.抽空会把你的情况,也整理到我即将发布的教程中的
Python新手小白常见错误和问题

2.关于如何掌握正确的学习方法和思路,详见(即将发布的)
学习方法思路及技术心得总结




陈年椰子 2020-03-16
  • 打赏
  • 举报
回复


from pyecharts.charts import WordCloud

name=['A','B','C','D','E']
values=[1,2,3,4,5]
data = zip(name,values)

mywordcloud = WordCloud()
mywordcloud.add('', data, shape='circle')
### 渲染图片
mywordcloud.render()

Coding_not_found 2020-03-15
  • 打赏
  • 举报
回复
而且我试过将后两个参数去掉,这样就不会报两个关键字参数的错误,但还是有4对3的错误 ||-_-
Coding_not_found 2020-03-15
  • 打赏
  • 举报
回复
我写的name和values就是对应的后两个参数,都是列表。(新手麻烦指正,一直找不到原因)
paullbm 2020-03-15
  • 打赏
  • 举报
回复
你得根据异常的问题来处理:
英文提示是说:
add()方法只需要3个位置参数(必选参数),但是你给了4个位置参数和2个关键字参数!

先看看方法介绍吧:

WordCloud.add() 方法签名
add(name, attr, value,
shape=”circle”,
word_gap=20,
word_size_range=None,
rotate_step=45)
name -> str:图例名称
attr -> list:属性名称
value -> list:属性所对应的值
shape -> list:词云图轮廓,有’circle’, ‘cardioid’, ‘diamond’, ‘triangleforward’, ‘triangle’, ‘pentagon’, ‘star’可选
word_gap -> int:单词间隔,默认为 20。
word_size_range -> list:单词字体大小范围,默认为 [12, 60]。
rotate_step -> int:旋转单词角度,默认为 45


以下3个参数是位置参数(有先后顺序之分,而且还要注意传入的类型是否与介绍中的一致)
name -> str:图例名称
attr -> list:属性名称
value -> list:属性所对应的值

你前3个参数传正确了吗?

37,744

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧