Plotly画图总结

基本画法

有两种画法,一种利用plotly.graph_objs,一种利用plotly.express
下面以Bubble Chart作示例

利用plotly.graph_objs

这种操作方式比较清楚,适合数据用list储存时候使用
修改一下tracelayout里的参数即可

import plotly.graph_objs as go
a=['a','b','c','d']
b=[1,2,3,4]
trace1=dict(x=a,
            y=b,
            mode='markers',                          #图的类型 markers代表气泡图
            name='Bubble Chart',                     #图的名称
            marker=dict(color=[120,140,160,180],
                        size=[10,40,60,90],
                        showscale=True,              #显示图右边的颜色图例
                        opacity=[1,0.7,0.4,0.2]),    #不透明度  1是不透明 
                        text=['aa','bb','cc','dd'])  #鼠标放上去后显示文本          
layout=dict(title='Bubble Chart',                    #显示在图的左上角
            xaxis=dict(title='x 轴'),
            yaxis=dict(title='y 轴'))       
data=[trace1]                                        #有多个图就构造多个trace
fig=go.Figure(data=data,layout=layout)
fig.show()

在这里插入图片描述

利用plotly.express

这种操作方式主要是与pandas相结合,当数据为dataframe形式时比较好用,而且这种方法可以方便的画出多个图形(不需要构造一个个trace)
这里是直接传入一个dataframe,在函数里面直接调用dataframe的各列(数据也可以是list)

import plotly.express as px
df = px.data.gapminder()
print(df.head())
#这里图的类型体现在scatter上
fig = px.scatter(df.query("year==2007"),      #导入一个dataframe,下面各数据就是列名(也可以传入list)
                 x="gdpPercap",
                 y="lifeExp",
	         size="pop",   
                title='bubble chart'          #显示在左上角的标题
                 color="continent",           #画出的图根据color分类
                 hover_name="country",        #hover name 指的是鼠标悬停在上面时,显示的属性
                 log_x=True,                  #x轴以对数比例缩放,否则就是等比例
                 size_max=60)
fig.show()

在这里插入图片描述

对于不同类型的图,语法大致是相同的。

基本图表

折线图
#1.利用plotly.express
fig=px.line()
#括号里面新增了一个属性:line_group
#如:line_group='country' 代表将同一国家的数据整合画成一条线
#注意:指定颜色时不能使用列表
#2.利用plotly.graph_objs
trace=dict(x=a,
           y=b,
           mode='lines'
           line=dict(color='red'))
#mode='lines'画出的是折线(没有标记点)
#mode='lines+markers'画出的是带标记点的折线
#mode='markers' 画出的是散点图

在这里插入图片描述

如果想画虚线,可以修改line里面dash的值
dash包括dash,dot,dashdot

如果想画其它类型的线,可以在trace里修改line_shape的值
在这里插入图片描述

还可以在图中添加各种标签,参考layoutannotations参数

饼图
#1.plotly.express画法
fig=px.pie(df,
           values='tip',       #占比的计算
           names='day',        #按照day属性进行分类
           color='day',        #每块颜色
           color_discrete_map={ 'Thur':'lightcyan',    #指定具体颜色
                                'Fri':'cyan',
                                'Sat':'royalblue',
                                'Sun':'darkblue'})
#2.go.pie画法
labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']
values = [4500, 2500, 1053, 500]
fig = go.Figure(data=[go.Pie(labels=labels, 
                             values=values,
                             textinfo='value', #用于设置直接显示的文本(也可以写成textinfo='value+label'之类的))])
                             #hole=.3    可以将图设置为空心的
                             #pull=[0,0.1,0,0]  将某一块突出显示

fig.update_traces(hoverinfo='label+percent',    #设置鼠标悬浮上去时显示的文本
                  textfont_size=20,         
                  marker=dict(colors=colors, line=dict(color='#000000', width=2)))
fig.show()
#可以用fig.update_layout(uniformtext_minsize=12, uniformtext_mode='hide')来让占比过小的标签不显示文本
#go.Pie()里面加textinfo='value' 用于设置直接显示的文本(也可以写成textinfo='value+label'之类的)

在这里插入图片描述

在这里插入图片描述

go.pie来写的自由性是比较大的,可以通过fig.add_trace添加其它轨迹

柱状图
#1.plotly.express画法
data_canada = px.data.gapminder().query("country == 'Canada'")
fig = px.bar(data_canada, x='year', y='pop',   #y也可以写为y=["gold", "silver", "bronze"],也能达到颜色分层效果
                          color='medal',    #可以画出每条柱颜色分层的效果
                          #hover_data=['lifeExp','gdpPercap']  #设置悬浮文本                          
                           )
fig.show()
#还可以画多个图
fig = px.bar(df, x="sex", y="total_bill", color="smoker",               
            barmode="group",
            facet_row="time",    #在列上做分割,按time画图
            facet_col="day",     #在行上做分割,按day画图
            category_orders={"day": ["Thur", "Fri", "Sat", "Sun"],
                              "time": ["Lunch", "Dinner"]}) #指定排布顺序
#2.go.Bar画法
#2.1最简单的画法
animals=['giraffes', 'orangutans', 'monkeys']
fig = go.Figure([go.Bar(x=animals, y=[20, 14, 23],
                         marker_color=colors,    #调整颜色
                         width=[0.8,0.8,0.3]     #调整宽度
                         )])   
#2.2叠加画法
animals=['giraffes', 'orangutans', 'monkeys']
fig = go.Figure(data=[
    go.Bar(name='SF Zoo', x=animals, y=[20, 14, 23]),
    go.Bar(name='LA Zoo', x=animals, y=[12, 18, 29])
])
fig.update_layout(barmode='group')    #并列
#fig.update_layout(barmode='stack')   #堆叠

#2.3不同颜色的并列(常用)
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
          'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
fig = go.Figure()
fig.add_trace(go.Bar(
    x=months,
    y=[20, 14, 25, 16, 18, 22, 19, 15, 12, 16, 14, 17],
    name='Primary Product',
    marker_color='indianred'
))
fig.add_trace(go.Bar(
    x=months,
    y=[19, 14, 22, 14, 16, 19, 15, 14, 10, 12, 12, 16],
    name='Secondary Product',
    marker_color='lightsalmon'
))
fig.update_layout(barmode='group', xaxis_tickangle=-45)   #将x轴标签适当倾斜
fig.show()

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

目前并没有广泛认可或使用的绘图工具名为“GESQ”。如果这是特定领域内的工具或者自定义名称,可能需要提供更详细的背景信息以便进一步确认其功能和用途。 然而,假设您提到的是某种类似于 `Matplotlib` 的 Python 绘图库或者是其他类似的图形绘制技术,以下是基于常见绘图工具的扩展说明以及如何实现类似的功能: ### 假设一:GESQ 是一种虚构或未公开的绘图工具 在这种情况下,可以尝试通过已知的绘图库(如 `Matplotlib` 或者 `Seaborn`)来模拟 GESQ 的行为。下面是一个使用 `Matplotlib` 实现复杂散点图的例子: #### 散点图增强版示例 ```python import numpy as np import matplotlib.pyplot as plt # 创建随机数据集 np.random.seed(0) x = np.random.rand(50) y = np.random.rand(50) colors = np.random.rand(50) sizes = 1000 * np.random.rand(50) # 使用 scatter 方法创建带有颜色和大小变化的散点图 plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='viridis') # 设置颜色条 plt.colorbar() # 添加标题和轴标签 plt.title("Enhanced Scatter Plot Example") plt.xlabel("X-Axis Label") plt.ylabel("Y-Axis Label") # 显示图像 plt.show() ``` 此代码展示了如何利用 `scatter()` 函数中的参数调整点的颜色 (`c`) 和大小 (`s`) 来增加图表的表现力[^2]。 --- ### 假设二:GESQ 类似于现有高级绘图框架 (e.g., Bokeh, Plotly) 如果是交互式的绘图需求,则可考虑采用支持动态可视化的工具包,比如 `Plotly` 或 `Bokeh`。这些工具允许用户生成具有更高互动性的图表。 #### 使用 Plotly 制作交互式散点图 ```python import plotly.express as px # 构建 DataFrame 数据结构 df = px.data.iris() # iris 是内置的数据样本 fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", size='petal_length', hover_data=['petal_width']) # 展示图表 fig.show() ``` 上述例子中,我们采用了 `plotly.express` 中的快捷函数 `px.scatter` 来快速构建一个带有多重维度展示能力的散点图,并启用了鼠标悬停效果显示额外的信息字段[^3]。 --- ### 总结 由于当前无法确切得知 “GESQ” 是否为实际存在的软件产品或是具体指代什么类型的绘图方式,因此以上仅能依据常规实践给出替代方案和技术指导。如果您能够提供更多关于该术语的具体描述或者其他线索,那么将有助于获得更加贴合目标的回答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值