## 上面的代码都一样, page = Page(layout=Page.DraggablePageLayout) page.add( page(init_opts=opts.InitOpts(theme = ThemeType.CHALK)), bar_film(), line_ranking(), pie_circletype(), WordCloud_wc(), Map_worldmap(), ) page.render("page_draggable_layout.html")中的 page(init_opts=opts.InitOpts(theme = ThemeType.CHALK))这句语句怎么修改不会出现'Page' object is not callable这样的错误
时间: 2023-06-17 15:04:20 浏览: 55
`'Page' object is not callable` 错误通常是由于将 `Page` 对象当作函数进行调用而导致的。在这里,`Page` 是一个类,而不是一个函数,因此不能像函数一样进行调用。如果您想设置页面的主题,可以将 `init_opts` 参数传递给 `Page` 类的构造函数,如下所示:
```python
page = Page(layout=Page.DraggablePageLayout, init_opts=opts.InitOpts(theme=ThemeType.CHALK))
```
这将在创建 `Page` 对象时设置主题为“CHALK”。
相关问题
## 上面的代码都一样, page = Page(layout=Page.DraggablePageLayout) page.add( page = Page(layout=Page.DraggablePageLayout, init_opts=opts.InitOpts(theme=ThemeType.CHALK)), bar_film(), line_ranking(), pie_circletype(), WordCloud_wc(), Map_worldmap(), ) page.render("page_draggable_layout.html")File "<ipython-input-43-210a50f6b8d2>", line 5 line_ranking(), ^ SyntaxError: positional argument follows keyword argument修改以上代码,并以一个可以固定BI大屏中图片位置的结果输出
可以使用 Grid 类型的页面布局来实现BI大屏中图片位置的固定。以下是修改后的代码:
```python
from pyecharts import options as opts
from pyecharts.charts import Bar, Line, Pie, WordCloud, Map, Page
from pyecharts.globals import ThemeType
from pyecharts.faker import Faker
# 设置主题
opts.defaults.theme = ThemeType.CHALK
# 柱状图
def bar_film() -> Bar:
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("电影", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="电影票房排行榜"))
)
return c
# 折线图
def line_ranking() -> Line:
c = (
Line()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="商家排名"))
)
return c
# 饼图
def pie_circletype() -> Pie:
c = (
Pie()
.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
.set_global_opts(title_opts=opts.TitleOpts(title="圆环图示例"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
return c
# 词云图
def WordCloud_wc() -> WordCloud:
c = (
WordCloud()
.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
.set_global_opts(title_opts=opts.TitleOpts(title="词云示例"))
)
return c
# 地图
def Map_worldmap() -> Map:
c = (
Map()
.add("世界地图", [list(z) for z in zip(Faker.country, Faker.values())], "world")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="世界地图示例"))
)
return c
# 创建页面
page = Page(layout=Page.SimplePageLayout)
# 将各个图表添加到页面中
page.add(bar_film())
page.add(line_ranking())
page.add(pie_circletype())
page.add(WordCloud_wc())
page.add(Map_worldmap())
# 将页面转为Grid类型的布局,并设置各个图表的位置
page.grid = [
{"pos": [0, 0], "span": [6, 6], "chart_id": 0},
{"pos": [6, 0], "span": [6, 6], "chart_id": 1},
{"pos": [0, 6], "span": [6, 6], "chart_id": 2},
{"pos": [6, 6], "span": [6, 6], "chart_id": 3},
{"pos": [2, 12], "span": [10, 10], "chart_id": 4},
]
# 渲染页面并保存为HTML文件
page.render("page_grid_layout.html")
```
修改后的代码使用了 `Page.SimplePageLayout` 布局,这种布局方式可以将不同的图表放置在网页的不同位置。通过修改 `page.grid` 属性,可以控制各个图表在页面中的位置和大小。在本例中,我们将各个图表放置在一个 `6x6` 的网格中的不同位置,并将词云图和地图放置在一个 `10x10` 的网格中,使它们占据页面的中间位置。
from pyecharts.charts import Line import pyecharts.options as opts c = ( Line(init_opts=opts.InitOpts(theme = ThemeType.CHALK)) .set_global_opts( title_opts=opts.TitleOpts(title="电影数量"), xaxis_opts=opts.AxisOpts(type_="category"), yaxis_opts=opts.AxisOpts( type_="value", axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=True), ), ) .add_xaxis(xaxis_data=Year['上映年份']) .add_yaxis( series_name="电影数量", y_axis=Year['电影数量'], symbol="emptyCircle", is_symbol_show=True, label_opts=opts.LabelOpts(is_show=False), itemstyle_opts=opts.ItemStyleOpts( color="red"), markpoint_opts=opts.MarkPointOpts( data=[opts.MarkPointItem(type_="max",name="最大值")] ) ) .set_series_opts(is_sort=True) ) c.render_notebook() 请修改一下代码,将折线图中x轴中上映年份以升序的形式排列在图中呈现出来
可以通过对传入的 `xaxis_data` 进行排序来实现 x 轴的升序排列。修改后的代码如下:
```python
from pyecharts.charts import Line
import pyecharts.options as opts
c = (
Line(init_opts=opts.InitOpts(theme=ThemeType.CHALK))
.set_global_opts(
title_opts=opts.TitleOpts(title="电影数量"),
xaxis_opts=opts.AxisOpts(type_="category"),
yaxis_opts=opts.AxisOpts(
type_="value",
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
)
.add_xaxis(xaxis_data=Year['上映年份'].sort_values())
.add_yaxis(
series_name="电影数量",
y_axis=Year['电影数量'],
symbol="emptyCircle",
is_symbol_show=True,
label_opts=opts.LabelOpts(is_show=False),
itemstyle_opts=opts.ItemStyleOpts(color="red"),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值")])
)
.set_series_opts(is_sort=True)
)
c.render_notebook()
```
其中,用 `sort_values()` 方法对 `Year['上映年份']` 进行排序。