趋势(一)利用python绘制折线图

趋势(一)利用python绘制折线图

折线图( Line Chart)简介

1

折线图用于在连续间隔或时间跨度上显示定量数值,最常用来显示趋势和关系(与其他折线组合起来)。折线图既能直观地显示数量随时间的变化趋势,也能展示两个变量的关系。

快速绘制

  1. 基于matplotlib

    import matplotlib.pyplot as plt
    import numpy as np# 自定义数据
    values = np.cumsum(np.random.randn(1000,1))# 绘制折线图
    plt.plot(values)
    plt.show()
    

    2

  2. 基于seaborn

    import seaborn as sns
    import matplotlib.pyplot as plt
    import numpy as np# 自定义数据
    values = np.cumsum(np.random.randn(1000,1))# 绘制折线图
    sns.lineplot(x=np.array(range(1, 1001)), y=values.ravel())  # 使用 ravel() 将 values 转化为一维
    plt.show()
    

    3

  3. 基于plotly

    import plotly.graph_objects as go
    import numpy as np# 自定义数据
    values = np.cumsum(np.random.randn(1000,1))# 绘制折线图
    fig = go.Figure(data=go.Scatter(x=list(range(1, 1001)), y=values.ravel(), mode='lines'))
    fig.show()
    

    4

  4. 基于pandas

    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd# 自定义数据
    values = np.cumsum(np.random.randn(1000,1))
    df = pd.DataFrame(values, columns=['Values'])# 绘制折线图
    df.plot()
    plt.show()
    

    5

定制多样化的折线图

自定义折线图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。

通过matplotlib绘制多样化的折线图

matplotlib主要利用plot绘制折线图,可以通过matplotlib.pyplot.plot了解更多用法

  1. 修改参数

    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pdplt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签# 自定义数据
    df=pd.DataFrame({'x_values': range(1,11), 'y_values': np.random.randn(10) })# 初始化布局
    fig = plt.figure(figsize=(12,3))# 自定义颜色
    plt.subplot(1, 3, 1) 
    plt.plot( 'x_values', 'y_values', data=df, color='skyblue')
    plt.title('自定义颜色')# 自定义透明度
    plt.subplot(1, 3, 2) 
    plt.plot( 'x_values', 'y_values', data=df, color='skyblue', alpha=0.3)
    plt.title('自定义透明度')# 自定义线条
    plt.subplot(1, 3, 3) 
    plt.plot( 'x_values', 'y_values', data=df, linestyle='dashed', linewidth=5)
    plt.title('自定义线条')plt.show()
    

    6

  2. 带注释的折线图

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pdplt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签# 自定义数据
    dates = []for date in range(1970,2023):dates.append(str(date))sample_size = 2023-1970
    variable = np.random.normal(100,15,sample_size,)df = pd.DataFrame({'date': dates,'value': variable})# 初始化布局
    fig = plt.figure(figsize=(12,8))# 1-基本折线图
    plt.subplot(2, 1, 1) 
    plt.plot(df['date'], df['value'])# 轴标签
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.title('基本折线图')# 刻度
    plt.xticks(rotation=45)# 2-带注释的折线图
    plt.subplot(2, 1, 2) 
    plt.plot(df['date'], df['value'])# 轴标签
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.title('带注释的折线图')# 刻度
    plt.xticks(rotation=45)# 添加文本注释
    plt.text(df['date'].iloc[38], # x位置df['value'].iloc[1], # y位置'What a nice chart!', # 文本注释fontsize=13,color='red')# 找到最大值索引
    highest_index = df['value'].idxmax()# 最高值标记
    plt.scatter(df['date'].iloc[highest_index],df['value'].iloc[highest_index],color='blue',marker='o', # 标记特殊的店s=100,)# 计算均值
    median_value = df['value'].median()# 添加均值线
    plt.axhline(y=median_value, color='green', linestyle='--', label='Reference Line (Median)')fig.tight_layout() # 自动调整间距
    plt.show()
    

    7

  3. 对数变换的折线图

    import matplotlib.pyplot as plt
    from matplotlib.ticker import MultipleLocator
    import numpy as np
    import pandas as pdplt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签# 自定义数据
    x = np.linspace(1, 10, 100)
    y = np.exp(x)
    df = pd.DataFrame({'x': x, 'y': y})# 初始化布局
    fig = plt.figure(figsize=(12,4))# 1-基本折线图
    plt.subplot(1, 2, 1) 
    plt.plot(df['x'], df['y'])# 轴标签
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.title('基本折线图')# 添加网格线
    plt.grid(True, linestyle='--', alpha=0.6)# 2-对数转化折线图
    plt.subplot(1, 2, 2) 
    plt.plot(df['x'], df['y'])# y轴对数化
    plt.yscale('log')# 轴标签
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.title('对数化的折线图')# 对数刻度的网格
    y_major_locator = MultipleLocator(3000) 
    plt.gca().yaxis.set_major_locator(y_major_locator)# 添加网格线
    plt.grid(True, linestyle='--', alpha=0.6)plt.show()
    

    8

  4. 双轴折线图

    import matplotlib.pyplot as plt
    import numpy as np
    from datetime import datetime, timedelta
    from matplotlib import colorsplt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签rng = np.random.default_rng(1234)date = [datetime(2019, 1, 1) + timedelta(i) for i in range(100)]
    temperature = np.arange(100) ** 2.5 / 10000 + rng.uniform(size=100)
    price = np.arange(120, 20, -1) ** 1.5 / 10 + rng.uniform(size=100)# 设置多子图
    fig, axarr = plt.subplots(2, 2, figsize=(12, 8))# 1-基础的双轴折线图
    ax1 = axarr[0, 0]
    ax2 = ax1.twinx()
    ax1.plot(date, temperature)
    ax2.plot(date, price)
    ax1.set_title('基础的双轴折线图')# 2-自定义颜色双轴
    COLOR_TEMPERATURE = "#69b3a2"
    COLOR_PRICE = "#3399e6"ax1 = axarr[0, 1]
    ax2 = ax1.twinx()
    ax1.plot(date, temperature, color=COLOR_TEMPERATURE, lw=3)
    ax2.plot(date, price, color=COLOR_PRICE, lw=4)ax1.set_xlabel("Date")
    ax1.set_ylabel("Temperature (Celsius °)", color=COLOR_TEMPERATURE, fontsize=14)
    ax1.tick_params(axis="y", labelcolor=COLOR_TEMPERATURE)
    ax2.set_ylabel("Price ($)", color=COLOR_PRICE, fontsize=14)
    ax2.tick_params(axis="y", labelcolor=COLOR_PRICE)
    ax1.set_title('自定义颜色双轴')# 3-折线与条形图组合
    ax1 = axarr[1, 0]
    ax2 = ax1.twinx()
    ax1.bar(date, temperature, color=COLOR_TEMPERATURE, edgecolor="black", alpha=0.4, width=1.0)
    ax2.plot(date, price, color=COLOR_PRICE, lw=4)ax1.set_xlabel("Date")
    ax1.set_ylabel("Temperature (Celsius °)", color=COLOR_TEMPERATURE, fontsize=14)
    ax1.tick_params(axis="y", labelcolor=COLOR_TEMPERATURE)ax2.set_ylabel("Price ($)", color=COLOR_PRICE, fontsize=14)
    ax2.tick_params(axis="y", labelcolor=COLOR_PRICE)fig.autofmt_xdate()
    ax1.set_title("折线与条形图组合")# 4-自定义组合图样式
    color = list(colors.to_rgba(COLOR_TEMPERATURE))
    color[3] = 0.4ax1 = axarr[1, 1]
    ax2 = ax1.twinx()
    ax1.bar(date, temperature, color=color, edgecolor="black", width=1.0)
    ax2.plot(date, price, color=COLOR_PRICE, lw=4)ax1.set_xlabel("Date")
    ax1.set_ylabel("Temperature (Celsius °)", color=COLOR_TEMPERATURE, fontsize=14)
    ax1.tick_params(axis="y", labelcolor=COLOR_TEMPERATURE)ax2.set_ylabel("Price ($)", color=COLOR_PRICE, fontsize=14)
    ax2.tick_params(axis="y", labelcolor=COLOR_PRICE)fig.autofmt_xdate()
    ax1.set_title("自定义组合图样式")fig.tight_layout() # 自动调整间距
    plt.show()
    

    9

  5. 多个折线图

    import matplotlib.pyplot as plt
    import numpy as np
    from datetime import datetime, timedelta
    from matplotlib import colors
    import matplotlib.gridspec as gridspecplt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签# 创建 2x3 的大布局
    fig = plt.figure(figsize=(18, 8))
    gs = gridspec.GridSpec(2, 3, figure=fig)
    # 获得每个子图的位置
    ax1 = fig.add_subplot(gs[0, 0])
    ax2 = fig.add_subplot(gs[0, 1])
    ax3 = fig.add_subplot(gs[0, 2])
    # ax4 = fig.add_subplot(gs[1, 0])
    # ax5 = fig.add_subplot(gs[1, 1])
    ax6 = fig.add_subplot(gs[1, 2])# 1-基础的多折线图
    df=pd.DataFrame({'x_values': range(1,11), 'y1_values': np.random.randn(10), 'y2_values': np.random.randn(10)+range(1,11), 'y3_values': np.random.randn(10)+range(11,21) })ax1.plot( 'x_values', 'y1_values', data=df, marker='o', markerfacecolor='blue', markersize=12, color='skyblue', linewidth=4)
    ax1.plot( 'x_values', 'y2_values', data=df, marker='', color='olive', linewidth=2)
    ax1.plot( 'x_values', 'y3_values', data=df, marker='', color='olive', linewidth=2, linestyle='dashed', label="toto")
    ax1.legend()
    ax1.set_title('基础的多折线图')# 2-高亮显示一组
    df=pd.DataFrame({'x': range(1,11), 'y1': np.random.randn(10), 'y2': np.random.randn(10)+range(1,11), 'y3': np.random.randn(10)+range(11,21), 'y4': np.random.randn(10)+range(6,16), 'y5': np.random.randn(10)+range(4,14)+(0,0,0,0,0,0,0,-3,-8,-6), 'y6': np.random.randn(10)+range(2,12), 'y7': np.random.randn(10)+range(5,15), 'y8': np.random.randn(10)+range(4,14) })for column in df.drop('x', axis=1):ax2.plot(df['x'], df[column], marker='', color='grey', linewidth=1, alpha=0.4)
    ax2.plot(df['x'], df['y5'], marker='', color='orange', linewidth=4, alpha=0.7) # 高亮y5
    ax2.set_xlim(0,12)
    # 增加注释
    num=0
    for i in df.values[9][1:]:num+=1name=list(df)[num]if name != 'y5':ax2.text(10.2, i, name, horizontalalignment='left', size='small', color='grey')else:ax2.text(10.2, i, 'Mr Orange', horizontalalignment='left', size='small', color='orange') # 高亮组的文本注释
    ax2.set_title("高亮显示一组")# 3-多折线模式(Spaghetti Plot)
    df=pd.DataFrame({'x': range(1,11), 'y1': np.random.randn(10), 'y2': np.random.randn(10)+range(1,11), 'y3': np.random.randn(10)+range(11,21), 'y4': np.random.randn(10)+range(6,16), 'y5': np.random.randn(10)+range(4,14)+(0,0,0,0,0,0,0,-3,-8,-6), 'y6': np.random.randn(10)+range(2,12), 'y7': np.random.randn(10)+range(5,15), 'y8': np.random.randn(10)+range(4,14), 'y9': np.random.randn(10)+range(4,14), 'y10': np.random.randn(10)+range(2,12) })palette = plt.get_cmap('Set1')
    num=0
    for column in df.drop('x', axis=1):num+=1ax3.plot(df['x'], df[column], marker='', color=palette(num), linewidth=1, alpha=0.9, label=column)ax3.legend(loc=2, ncol=2)
    ax3.set_title("多折线模式(Spaghetti Plot)")# 4-多折线小图
    df=pd.DataFrame({'x': range(1,11), 'y1': np.random.randn(10), 'y2': np.random.randn(10)+range(1,11), 'y3': np.random.randn(10)+range(11,21), 'y4': np.random.randn(10)+range(6,16), 'y5': np.random.randn(10)+range(4,14)+(0,0,0,0,0,0,0,-3,-8,-6), 'y6': np.random.randn(10)+range(2,12), 'y7': np.random.randn(10)+range(5,15), 'y8': np.random.randn(10)+range(4,14), 'y9': np.random.randn(10)+range(4,14) })
    # 在第一行第一列的位置创建3*3的子布局
    ax4 = gridspec.GridSpecFromSubplotSpec(3, 3, subplot_spec=gs[1, 0])
    # 在 3x3 的小布局中添加子图
    axes = []
    for i in range(3):for j in range(3):ax = fig.add_subplot(ax4[i, j])axes.append(ax)  # 将子图句柄添加到列表中
    num = 0
    for column in df.drop('x', axis=1):num += 1ax = axes[num - 1]ax.plot(df['x'], df[column], marker='', color=palette(num), linewidth=1.9, alpha=0.9, label=column)ax.set_xlim(0,10)ax.set_ylim(-2,22)# 如果当前子图不在最左边,就不显示y轴的刻度标签if num not in [1,4,7] :ax.tick_params(labelleft=False)# 如果当前子图不在最下边,就不显示x轴的刻度标签if num not in [7,8,9] :ax.tick_params(labelbottom=False)ax.annotate(column, xy=(0, 1), xycoords='axes fraction', fontsize=12, fontweight=0, color=palette(num),xytext=(5, -5), textcoords='offset points', ha='left', va='top')axes[1].set_title('多折线小图') # 通过设置3*3图的第二个子图的标题替代2*3图中的第4个图的子标题# 5-多折线小图细节处理
    df=pd.DataFrame({'x': range(1,11), 'y1': np.random.randn(10), 'y2': np.random.randn(10)+range(1,11), 'y3': np.random.randn(10)+range(11,21), 'y4': np.random.randn(10)+range(6,16), 'y5': np.random.randn(10)+range(4,14)+(0,0,0,0,0,0,0,-3,-8,-6), 'y6': np.random.randn(10)+range(2,12), 'y7': np.random.randn(10)+range(5,15), 'y8': np.random.randn(10)+range(4,14), 'y9': np.random.randn(10)+range(4,14) })
    # 在第一行第一列的位置创建3*3的子布局
    ax5 = gridspec.GridSpecFromSubplotSpec(3, 3, subplot_spec=gs[1, 1])
    # 在 3x3 的小布局中添加子图
    axes = []
    for i in range(3):for j in range(3):ax = fig.add_subplot(ax5[i, j])axes.append(ax)  # 将子图句柄添加到列表中
    num=0
    for column in df.drop('x', axis=1):num+=1ax = axes[num - 1]for v in df.drop('x', axis=1):ax.plot(df['x'], df[v], marker='', color='grey', linewidth=0.6, alpha=0.3)ax.plot(df['x'], df[column], marker='', color=palette(num), linewidth=2.4, alpha=0.9, label=column)ax.set_xlim(0,10)ax.set_ylim(-2,22)# 如果当前子图不在最左边,就不显示y轴的刻度标签if num not in [1,4,7] :ax.tick_params(labelleft=False)# 如果当前子图不在最下边,就不显示x轴的刻度标签if num not in [7,8,9] :ax.tick_params(labelbottom=False)ax.annotate(column, xy=(0, 1), xycoords='axes fraction', fontsize=12, fontweight=0, color=palette(num),xytext=(5, -5), textcoords='offset points', ha='left', va='top')axes[1].set_title('多折线小图细节处理') # 通过设置3*3图的第二个子图的标题替代2*3图中的第5个图的子标题# 6-带区域填充的多折线图
    time = np.arange(12)
    income = np.array([5, 9, 6, 6, 10, 7, 6, 4, 4, 5, 6, 4])
    expenses = np.array([6, 6, 8, 3, 6, 9, 7, 8, 6, 6, 4, 8])ax6.plot(time, income, color="green")
    ax6.plot(time, expenses, color="red")# 当income > expenses填充绿色
    ax6.fill_between(time, income, expenses, where=(income > expenses), interpolate=True, color="green", alpha=0.25, label="Positive"
    )# 当income <= expenses填充红色
    ax6.fill_between(time, income, expenses, where=(income <= expenses), interpolate=True, color="red", alpha=0.25,label="Negative"
    )ax6.set_title('带区域填充的多折线图')
    ax6.legend()plt.tight_layout() # 自动调整间距
    plt.show()
    

    10

  6. 绘制时间序列图

    import matplotlib.pyplot as plt
    import pandas as pd
    import matplotlib.dates as mdates# 导入数据
    data = pd.read_csv("https://raw.githubusercontent.com/holtzy/data_to_viz/master/Example_dataset/3_TwoNumOrdered.csv", delim_whitespace=True
    )# 日期格式
    data["date"] = pd.to_datetime(data["date"])date = data["date"]
    value = data["value"]# 绘制时间序列图
    fig, ax = plt.subplots(figsize=(8, 6))# 设置6个月间隔为一刻度
    half_year_locator = mdates.MonthLocator(interval=6) # 半年刻度
    monthly_locator = mdates.MonthLocator() # 每月子刻度
    year_month_formatter = mdates.DateFormatter("%Y-%m") # 格式化日期yyyy-MMax.xaxis.set_major_locator(half_year_locator)
    ax.xaxis.set_minor_locator(monthly_locator)
    ax.xaxis.set_major_formatter(year_month_formatter)ax.plot(date, value)fig.autofmt_xdate() # 自动旋转轴标签
    

    11

通过plotly绘制多样化的折线图

import plotly.graph_objects as go
import numpy as np
import pandas as pd# 自定义数据dates = []
start = 1990
end = 2022
for date in range(start,end):dates.append(str(date))# 生成随机序列,并计算累计和来生成随机漫步1、2、3
random_steps = np.random.choice([-1, 1], size=end-start, p=[0.5, 0.5])
random_walk1 = np.cumsum(random_steps)random_steps = np.random.choice([-1, 1], size=end-start, p=[0.5, 0.5])
random_walk2 = np.cumsum(random_steps)random_steps = np.random.choice([-1, 1], size=end-start, p=[0.5, 0.5])
random_walk3 = np.cumsum(random_steps)# 具有三个随机漫步的数据
df = pd.DataFrame({'date': dates,'value1': random_walk1,'value2': random_walk2,'value3': random_walk3,})fig = go.Figure()# 自定义变量1
fig.add_trace(go.Scatter(x=df['date'],y=df['value1'],mode='lines+markers', # 点线连接样式name='Line1',marker=dict(symbol='square',    size=10,           color='red'),      line=dict(color='blue',        width=5)            
))# 自定义变量2
fig.add_trace(go.Scatter(x=df['date'], y=df['value2'], mode='lines+markers', name='Line2', marker=dict(symbol='circle',   size=7,           color='purple'),      line=dict(color='orange',       width=8)            
))# 自定义变量3
fig.add_trace(go.Scatter(x=df['date'], y=df['value3'], mode='lines+markers', name='Line3',marker=dict(symbol='diamond',    size=15,            color='yellow'),       line=dict(color='green',       width=4)             
))# 自定义布局
fig.update_layout(title='Customized Line Chart',xaxis_title='X Axis Label', yaxis_title='Y Axis Label',xaxis_tickangle=45,  showlegend=True,    plot_bgcolor='white',  paper_bgcolor='lightblue', 
)

12

通过pandas绘制多样化的折线图

  1. 修改参数

    import pandas as pd
    import matplotlib.pyplot as plt# 导入数据
    url = 'https://raw.githubusercontent.com/holtzy/The-Python-Graph-Gallery/master/static/data/gapminderData.csv'
    df = pd.read_csv(url)
    df_france = df[df['country']=='France']# 绘制折线图
    ax = df_france.plot(x='year',y='lifeExp',grid=True,linestyle='--',alpha=0.5,color='purple',linewidth=2.0, marker='d',  markersize=8,  markerfacecolor='orange', label='France')# 标题
    ax.set_title('Evolution of \nthe life expectancy in France',weight='bold') # 轴标签
    ax.set_ylabel('Life Expectancy')
    ax.set_xlabel('Time (in year)')plt.show()
    

    13

  2. 多变量折线图

    import pandas as pd
    import random, numpy as np
    import matplotlib.pyplot as plt# 自定义数据
    num_time_points = 100
    time_values = np.arange(num_time_points)temperature = np.random.uniform(200, 400, num_time_points) 
    pressure = np.random.uniform(500, 700, num_time_points) 
    humidity = np.random.uniform(800, 1000, num_time_points) data = {'Time': time_values,'Temperature': temperature,'Pressure': pressure,'Humidity': humidity
    }
    df = pd.DataFrame(data)# 绘制多变量折线图
    df.plot(x='Time',kind='line', grid=True, )
    plt.legend(loc='upper right',bbox_to_anchor=(1.35, 1), )
    plt.show()
    

    14

  3. 分组折线图

    import pandas as pd
    import random, numpy as np
    import matplotlib.pyplot as plt# 自定义数据
    num_data_points_per_country = 20# 设置多个国家的温度
    france_temperatures = np.random.uniform(10, 20, num_data_points_per_country)  
    germany_temperatures = np.random.uniform(0, 10, num_data_points_per_country) 
    italy_temperatures = np.random.uniform(25, 30, num_data_points_per_country) # 对应的国家数据
    countries = ['France', 'Germany', 'Italy']
    country_labels = np.repeat(countries, num_data_points_per_country)# 时间数据
    time_values = np.tile(np.arange(num_data_points_per_country), len(countries))data = {'Country': country_labels,'Temperature': np.concatenate([france_temperatures, germany_temperatures, italy_temperatures]),'Time': time_values
    }df = pd.DataFrame(data)# 绘制折线图
    for name, group in df.groupby('Country'):plt.plot(group['Time'], group['Temperature'], label=name)# 设置图表的标题和坐标轴标签,并显示图例
    plt.title('Temperature Trend over Time by Country')
    plt.xlabel('Time')
    plt.ylabel('Temperature')
    plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')# 显示图表
    plt.show()
    

    15

总结

以上通过matplotlib、seaborn、plotly和pandas快速绘制折线图。并通过修改参数或者辅以其他绘图知识自定义各种各样的折线图来适应相关使用场景。

共勉~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/446887.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何查看GB28181流媒体平台LiveGBS中对GB28181实时视频数据统计的负载信息

目录 1、负载信息2、负载信息说明3、会话列表查看 3.1、会话列表4、停止会话5、搭建GB28181视频直播平台 1、负载信息 实时展示直播、回放、播放、录像、H265、级联等使用数目 2、负载信息说明 直播&#xff1a;当前推流到平台的实时视频数目回放&#xff1a;当前推流到平台的回…

【无标题】基于情境依赖因果影响的多智能体协作强化学习

、文章探讨了大型语言模型&#xff08;LLMs&#xff09;&#xff0c;例如GPT-4&#xff0c;是否以及在何种意义上拥有知识。作者认为&#xff0c;这些模型展现了一种称为“工具性知识”的能力&#xff0c;这种知识允许它们根据输入上下文推断任务结构&#xff0c;并在此基础上进…

废水处理(一)——MDPI特刊推荐

特刊征稿 01 期刊名称&#xff1a; Removing Challenging Pollutants from Wastewater: Effective Approaches 截止时间&#xff1a; 摘要提交截止日期&#xff1a;2024年11月30日 投稿截止日期&#xff1a;2025年5月31日 目标及范围&#xff1a; 该主题是分享去除有毒物…

js操作元素的其他操作(4个案例+效果图+代码)

目录 1. 获取元素的位置和大小 案例:获取元素的位置和大小 1.代码 2.效果 2. 获取元素的可视区域 案例:获取元素的可视区域 1.代码 2.效果 3. 元素的滚动操作 案例:元素的滚动操作 1.代码 2.效果 4. 获取鼠标指针位置 案例:时刻获取鼠标位置 1.代码 2.效果 案例:拖动的小球 1.代…

万物智联创未来,第三届OpenHarmony技术大会在上海成功举办 深圳触觉智能参会

​10月12日&#xff0c;以“技术引领筑生态&#xff0c;万物智联创未来”为主题的第三届OpenHarmony技术大会&#xff08;以下简称“大会”&#xff09;在上海成功举办。本次大会由OpenHarmony项目群技术指导委员会&#xff08;TSC&#xff09;主办&#xff0c;华为、上海交通大…

阿里云物联网自有app创建之初始化SDK

文章目录 一、新建工程&#xff0c;配置gradle,导入.so文件&#xff0c;生成apk二、上传apk&#xff0c;集成安全图片&#xff0c;下载SDK三、SDK的集成四、初始化SDK 最近在研究阿里云自有app,这是自己的心得。 一、新建工程&#xff0c;配置gradle,导入.so文件&#xff0c;生…

Gin框架官方文档详解03:HTML渲染

注&#xff1a;本教程使用工作区方法管理项目&#xff0c;详见第一讲&#xff1a;创建一个简单的Gin应用。 目录 一、简单渲染二、使用不同目录下名称相同的模板三、自定义模板渲染器四、自定义分隔符五、自定义模板函数六、总结 一、简单渲染 首先&#xff0c;以03HTML渲染为…

机器学习与神经网络:诺贝尔物理学奖的新篇章

机器学习与神经网络&#xff1a;诺贝尔物理学奖的新篇章 引言 2024年诺贝尔物理学奖的颁发&#xff0c;无疑是一个历史性的转折点。这一奖项首次授予了在机器学习与神经网络领域做出杰出贡献的科学家&#xff0c;标志着人工智能技术在科学研究中的重要地位得到了前所未有的认…

3.计算机网络_端口号

端口号的由来 运输层的作用&#xff1a; 在计算机网络中&#xff0c;运输层处在用户功能的最底层、通信部分的最高层的位置&#xff0c;也就是说运输层是用户数据和实际网络通信的桥梁。因此运输层屏蔽了网络的实现部分&#xff0c;以协议的方式向用户层提供了接口&#xff…

Matlab绘图总结(进阶)

本文在前文的基础上进一步整理画图方法 MATLAB画动图_CSDN博客 1. 基础图形绘制 1.1 rectangle&#xff08;矩形&#xff0c;圆形&#xff09; 在前文中&#xff0c;讲解了如何使用rectangle&#xff0c;rectangle本意是用来画矩形的&#xff0c;其中&#xff0c;Curvature可…

【一起学Rust | 框架篇 | Tauri2.0框架】高级概念之安全特性的权限与能力

文章目录 前言一、开发前准备1. 准备项目2. 需求分析1. 监听系统热键2. 切换窗口无边框3. 切换窗口全屏 二、安装插件三、前端实现功能四、配置权限 前言 当前时间为 2024 年 9 月&#xff0c;距离Tauri 2.0 的 RC 版本发布迄今已近一个月。从 Tauri 官方渠道可以看出&#xf…

CVESearch部署、使用与原理分析

文章目录 前言1、概述2、安装与使用2.1、源码安装2.1.1、部署系统依赖组件2.1.1.1、下载安装基础组件2.1.1.2、下载安装MongoDB Community Edition 7.0 2.1.2、使用源码安装系统2.1.2.1、安装CVESearch2.1.2.2、填充MongoDB数据库2.1.2.3、填充Redis数据库 2.2、使用方法 3、测…

使用java画一条线。

package p1008;import javax.swing.*; import java.awt.*;public class LineAndTextExample extends JPanel {Overrideprotected void paintComponent(Graphics g) {super.paintComponent(g);// 设置线条粗细Graphics2D g2d (Graphics2D) g;g2d.setStroke(new BasicStroke(5))…

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(基础)

SpringBoot教程&#xff08;二十四&#xff09; | SpringBoot实现分布式定时任务之Quartz&#xff08;基础&#xff09; 简介适用场景Quartz核心概念Quartz 存储方式Quartz 版本类型引入相关依赖开始集成方式一&#xff1a;内存方式(MEMORY)存储实现定时任务1. 定义任务类2. 定…

Broken pipe异常分析及处理

问题出现&#xff1a;生产上运行的系统业务正常&#xff0c;当在查询数据时&#xff0c;出现后台异常&#xff0c;检查后台日志出现Broken Pipe异常&#xff1b; 如图示&#xff1a; Broken Pipe定义&#xff1a;通常发生在服务器端尝试向已关闭的套接字&#xff08;客户端/端…

前端面试经验总结1(简历篇)

本文分为3部分&#xff0c;分别为第一部分简历篇&#xff0c;第二部分经典问题篇以及第三部分知识体系篇&#xff0c;都是个人面试经验及同行面试经验总结和整理。 我对于简历的理解是这样的&#xff0c;简历的作用是让看简历的人能够快速、准确地捕捉到有用信息&#xff1a; 你…

大数据存储,搜索智能化的实践分享 | OceanBase 城市交流会精彩回顾

9月21日&#xff0c;“OceanBase 城市交流会”来到了深圳&#xff0c;携手货拉拉大数据技术与产品部&#xff0c;联合举办了“走进货拉拉”的技术交流活动。货拉拉、万家数科、云集、百丽等多家企业的一线技术专家&#xff0c;就大数据存储、AI等热点话题&#xff0c;深入探讨并…

新的一轮前端面试已来临,避坑指南来 get!

最近看到很多人都在投简历&#xff0c;可是很多人对待面试不够认真&#xff0c;只会等待结果&#xff0c;不去努力。所以整理一些懒人面试技巧给大家。 我们说说目前应用面积最广的 Vue&#xff0c;大厂或是高级工程师面试的时候究竟会碰到什么棘手或是难缠的 Vue 的面试题呢&a…

人工智能 | openai chatgpt 大语言模型

简介 OpenAI 一个美国人工智能研究实验室&#xff0c;由非营利组织 OpenAI Inc&#xff0c;和其营利组织子公司 OpenAI LP 所组成。该组织于 2015 年由萨姆阿尔特曼、里德霍夫曼、杰西卡利文斯顿、伊隆马斯克、伊尔亚苏茨克维、沃伊切赫萨伦巴、彼得泰尔等人在旧金山成立&…

高效数据处理:MapReduce与Hive的实战应用

文章目录 hive分析汇总互联网日志分析1.项目需求2.数据说明3.算法思路 用户电影推荐1.项目需求2.数据说明3.算法思路4.解题步骤 简单数据统计WordCount数据说明 疫情数据分析1.项目需求2.数据说明step1:创建ods层数据表step2&#xff1a;创建dwd层数据表step3&#xff1a;创建d…