rose.set_series_opts(center=["50%", "50%"], radius=["40%", "55%"]).add("", [("Center", 100)])
时间: 2023-06-13 14:08:26 浏览: 137
这段代码是使用 Pyecharts 库中的 Rose 类生成一个玫瑰图。其中 set_series_opts 方法用于设置系列配置项,center 参数设置图表的中心位置,radius 参数设置内外半径,add 方法用于添加数据,第一个参数为数据的名称,第二个参数为数据点的列表,每个数据点是一个元组,第一个元素为数据的名称,第二个元素为数据的值。此处添加的数据只有一个,名称为 "Center",值为 100,因此生成的玫瑰图只有一个扇区的大小为 100。
相关问题
from pyecharts.charts import Bar, Line, Pie, Map, Scatter from pyecharts import options as opts from pyecharts.charts import Grid # 数据准备 x_data = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] y_data1 = [820, 932, 901, 934, 1290, 1330, 1320] y_data2 = [50, 60, 70, 80, 90, 100, 110] y_data3 = [200, 300, 400, 500, 600, 700, 800] y_data4 = [400, 500, 600, 700, 800, 900, 1000] y_data5 = [300, 400, 500, 600, 700, 800, 900] y_data6 = [100, 200, 300, 400, 500, 600, 700] bar = ( Bar() .add_xaxis(x_data) .add_yaxis("销量", y_data1) .set_global_opts( title_opts=opts.TitleOpts(title="柱状图"), legend_opts=opts.LegendOpts(is_show=False), xaxis_opts=opts.AxisOpts(name="日期"), yaxis_opts=opts.AxisOpts(name="销量"), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{c}")) ) line = ( Line() .add_xaxis(x_data) .add_yaxis("访问量", y_data2, is_smooth=True) .set_global_opts( title_opts=opts.TitleOpts(title="折线图"), legend_opts=opts.LegendOpts(is_show=False), xaxis_opts=opts.AxisOpts(name="日期"), yaxis_opts=opts.AxisOpts( name="访问量", splitline_opts=opts.SplitLineOpts(is_show=True), axistick_opts=opts.AxisTickOpts(is_show=True), ), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{c}")) ) pie = ( Pie() .pie = Pie("客户性别比例", "好友总人数:350", title_pos="center") .pie.use_theme("dark") .pie.add('', attr, value, is_label_show=True, is_legend_show=True, legend_top='bottom') ) map_data = [("广东", 104), ("湖南", 71), ("北京", 50), ("上海", 50)] map = ( Map() .add("销量", map_data, "china") .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts( title_opts=opts.TitleOpts(title="地图"), visualmap_opts=opts.VisualMapOpts(), ) ) custom = "" grid = ( Grid() .add(bar, grid_opts=opts.GridOpts(pos_left="5%", pos_top="5%", width="30%", height="40%")) .add(line, grid_opts=opts.GridOpts(pos_right="5%", pos_top="5%", width="30%", height="40%")) .add(pie, grid_opts=opts.GridOpts(pos_left="35%", pos_top="10%", width="30%", height="80%")) .add(map, grid_opts=opts.GridOpts(pos_right="5%", pos_bottom="5%", width="30%", height="40%")) .add_js_funcs(custom) ) grid.render("123.html") 为什么pie和map图位置都在网页最中间
在你的代码中,Pie 和 Map 图都没有加入到 Grid 中,而是分别调用了 Pie() 和 Map() 方法。
正确的写法应该是:
```python
pie = (
Pie()
.use_theme("dark")
.add(
"客户性别比例",
attr,
value,
is_label_show=True,
is_legend_show=True,
legend_top="bottom",
)
)
map_data = [("广东", 104), ("湖南", 71), ("北京", 50), ("上海", 50)]
map = (
Map()
.add("销量", map_data, "china")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="地图"),
visualmap_opts=opts.VisualMapOpts(),
)
)
grid = (
Grid()
.add(
bar,
grid_opts=opts.GridOpts(pos_left="5%", pos_top="5%", width="30%", height="40%"),
)
.add(
line,
grid_opts=opts.GridOpts(pos_right="5%", pos_top="5%", width="30%", height="40%"),
)
.add(
pie,
grid_opts=opts.GridOpts(pos_left="35%", pos_top="10%", width="30%", height="40%"),
)
.add(
map,
grid_opts=opts.GridOpts(pos_right="5%", pos_bottom="5%", width="30%", height="40%"),
)
.add_js_funcs(custom)
)
```
这样就可以正确地将 Pie 和 Map 图加入到 Grid 中,并且设置它们在网页中的位置了。
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['上映年份']` 进行排序。