散点图是指在数理统计回归分析中,数据点在直角坐标系平面上的分布图, 散点图表示因变量随自变量而变化的大致趋势,由此趋势可以选择合适的函数进行经验分布的拟合,进而找到变量之间的函数关系。
散点图主要的构成元素有:数据源,横纵坐标轴,变量名,研究的对象。而基本的要素就是点,也就是我们统计的数据,由这些点的分布我们才能观察出变量之间的关系。
而散点图一般研究的是两个变量之间的关系,往往满足不了我们日常的需求。因此,气泡图的诞生就是为散点图增加变量,提供更加丰富的信息,点的大小或者颜色可以定义为第三个变量,因为,做出来的散点图类似气泡,也由此得名为气泡图。
数据越多散点图呈现的效果就越明显。这也就是我们平时在进行建模的时候,采用回归拟合的原则,如果数据是遵循某种函数关系,我们可以通过机器进行训练,不断的迭代达到最优效果。
import pyecharts.options as opts from pyecharts.charts import Scatter data = [ [10.0, 8.04], [8.0, 6.95], [13.0, 7.58], [9.0, 8.81], [11.0, 8.33], [14.0, 9.96], [6.0, 7.24], [4.0, 4.26], [12.0, 10.84], [7.0, 4.82], [5.0, 5.68], ] data.sort(key=lambda x: x[0]) x_data = [d[0] for d in data] y_data = [d[1] for d in data] ( Scatter(init_opts=opts.InitOpts(width="1200px", height="600px")) .add_xaxis(xaxis_data=x_data) .add_yaxis( series_name="", y_axis=y_data, symbol_size=20, label_opts=opts.LabelOpts(is_show=False), ) .set_series_opts() .set_global_opts( xaxis_opts=opts.AxisOpts( type_="value", splitline_opts=opts.SplitLineOpts(is_show=True) ), yaxis_opts=opts.AxisOpts( type_="value", axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=True), ), tooltip_opts=opts.TooltipOpts(is_show=False), ) .render("简单散点图.html") )
我们在平时的运用场景中,发现散点图太多呈现的效果图太密集了,我们只需要知道某一个区域它分布的数量,本来柱状图可以解决,但是这个散点图一个更好,可以反映区域的分布,主要可以看见它的数量趋势变化,根据自己的业务需求来使用吧。
from pyecharts import options as opts from pyecharts.charts import Scatter from pyecharts.commons.utils import JsCode from pyecharts.faker import Faker c = ( Scatter() .add_xaxis(Faker.choose()) .add_yaxis( "类别1", [list(z) for z in zip(Faker.values(), Faker.choose())], label_opts=opts.LabelOpts( formatter=JsCode( "function(params){return params.value[1] +' : '+ params.value[2];}" ) ), ) .set_global_opts( title_opts=opts.TitleOpts(title="多维度数据"), tooltip_opts=opts.TooltipOpts( formatter=JsCode( "function (params) {return params.name + ' : ' + params.value[2];}" ) ), visualmap_opts=opts.VisualMapOpts( type_="color", max_=150, min_=20, dimension=1 ), ) .render("多维数据散点图.html") ) print([list(z) for z in zip(Faker.values(), Faker.choose())])
显示分割线,其实和之前的没有异样。
from pyecharts import options as opts from pyecharts.charts import Scatter from pyecharts.faker import Faker c = ( Scatter() .add_xaxis(Faker.choose()) .add_yaxis("A", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(title="标题"), xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)), ) .render("分割线.html") )
用二维的数据来展示每个类别的分布状况,图表可显示多个类别,这样极大的增强了我们解释的效果。
from pyecharts import options as opts from pyecharts.charts import Scatter from pyecharts.faker import Faker c = ( Scatter() .add_xaxis(Faker.choose()) .add_yaxis("1", Faker.values()) .add_yaxis("2", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(title="标题"), visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20), ) .render("凸出大小散点图.html") )
之前的散点都是静态的,下面我们来看看动态的散点图;
from pyecharts import options as opts from pyecharts.charts import EffectScatter from pyecharts.faker import Faker c = ( EffectScatter() .add_xaxis(Faker.choose()) .add_yaxis("", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="散点图")) .render("动态散点图.html") )
from pyecharts import options as opts from pyecharts.charts import EffectScatter from pyecharts.faker import Faker from pyecharts.globals import SymbolType c = ( EffectScatter() .add_xaxis(Faker.choose()) .add_yaxis("", Faker.values(), symbol=SymbolType.ARROW) .set_global_opts(title_opts=opts.TitleOpts(title="标题")) .render("箭头动态散点图.html") )
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理