标签: scatter-plot

如何在 HighCharts 散点图中以动画方式将点从一个位置移动到另一个位置

在 HighCharts 散点图中,我想使用平滑的动画将一个点从其位置移动到另一个位置。例如,在以下代码定义的散点图中(jfiddle链接):

$(function () {
    var chart;
    $(document).ready(function() {
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container'
            },
            xAxis: {
                min: -0.5,
                max: 5.5
            },
            yAxis: {
                min: 0
            },
            title: {
                text: 'Scatter plot with regression line'
            },
            series: [{
                type: 'scatter',
                name: 'Observations',
                data: [[1, 1.5], [2.8, 3.5], [3.9, 4.2]],
                marker: {
                    radius: 4
                }
            }]
        });
    });

});
Run Code Online (Sandbox Code Playgroud)

我想将第一个点从 (1,1.5) 移动到 (2,2)。是否可以?

animation scatter-plot highcharts

1
推荐指数
1
解决办法
2280
查看次数

如何更新散点图动画

我尝试编写一个简单的脚本,它更新每个时间步的散点图t。我想做得尽可能简单。但它所做的只是打开一扇我什么也看不见的窗户。窗户就结冰了。这可能只是一个小错误,但我找不到它。

data.dat格式为

                x      y
Timestep 1      1      2
                3      1
Timestep 2      6      3
                2      1
Run Code Online (Sandbox Code Playgroud)

(该文件仅包含数字)

import numpy as np
import matplotlib.pyplot as plt
import time

# Load particle positioins
with open('//home//user//data.dat', 'r') as fp:
    particles = []
    for line in fp:
        line = line.split() 
        if line:
            line = [float(i) for i in line]
            particles.append(line)

T = 100
numbParticles = 2

x, y = np.array([]), np.array([])

plt.ion()
plt.figure()
plt.scatter(x,y)
for t in range(T):
    plt.clf()
    for …
Run Code Online (Sandbox Code Playgroud)

python matplotlib scatter-plot matplotlib-animation

1
推荐指数
1
解决办法
9324
查看次数

Plotly 的 Scatterpolar:如何更改 theta 范围?

我正在使用 Plotly 的散点图来可视化多个数据集。

这是我的代码的一部分。下面,我创建了 scatterpolo 实例:

go.Scatterpolar(
    r=[dataset_dataframe['word_count'].median(),
       dataset_dataframe['char_count'].median(),
       dataset_dataframe['capitals'].median(),
       dataset_dataframe['num_exclamation_marks'].median(),
       dataset_dataframe['num_punctuation'].median()],

    name=dataset_name,
    theta=['No. of Words', 'No. of Characters', 'No. of Capitals', 'No. of Exclamation Marks', 'No. of Punctuations'],
    fill='toself',
    line=dict(color='brown'),
    subplot=subplot_name),
)
Run Code Online (Sandbox Code Playgroud)

我在这里将其放入布局中:

fig.update_layout(
    polar=dict(
    radialaxis=dict(visible=True, )),
    title='Dataset Statistics')
Run Code Online (Sandbox Code Playgroud)

我对多个数据框执行此操作,这使我可以轻松比较它们。结果很简洁,如下所示:

在此输入图像描述

不幸的是,似乎 的范围theta是使用每个散点实例的最大值自动计算的r

这不好,因为为了轻松比较数据集,我需要theta所有绘图都处于相同的范围内。

问题:如何将 的范围设置theta为自定义值,例如从 1 到 100?

python scatter-plot plotly

1
推荐指数
1
解决办法
2626
查看次数

如何在实线上方绘制散点图

我有两对 x 和 y 值,一对绘制为线图(蓝色),另一对绘制为散点图(红色)。这些点重叠,并且蓝色实线绘制在红点之上,导致仅红点的非重叠部分可见。我希望这是相反的:我希望红点全部位于蓝线之上,以便红点全部完全可见,而蓝线在重叠点处被遮挡。对于如何做到这一点有什么建议吗?

import numpy as np
import matplotlib.pyplot as plt


x1 = np.linspace(0,10,20)
x2 = np.linspace(0,10,500)

y1 = np.sin(x1)
y2 = np.sin(x2)

plt.plot(x2,y2, color = 'b')
plt.scatter(x1,y1,marker = 'o', s = 6, color = 'r')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python plot matplotlib scatter-plot

1
推荐指数
1
解决办法
3333
查看次数

在 seaborn 散点图中对分类 x 轴进行排序

我正在尝试使用 seaborn 散点图在数据框中绘制前 30% 的值,如下所示。

在此处输入图片说明

同一图的可重现代码:

import seaborn as sns

df = sns.load_dataset('iris')

#function to return top 30 percent values in a dataframe.
def extract_top(df):
    n = int(0.3*len(df))
    top = df.sort_values('sepal_length', ascending = False).head(n)

    return top

#storing the top values
top = extract_top(df)

#plotting
sns.scatterplot(data = top,
                x='species', y='sepal_length', 
                color = 'black',
                s = 100,
                marker = 'x',)
Run Code Online (Sandbox Code Playgroud)

在这里,我想对 x 轴进行排序order = ['virginica','setosa','versicolor']。当我尝试order用作 中的参数之一时sns.scatterplot(),它返回了一个错误AttributeError: 'PathCollection' object has no property 'order'。正确的做法是什么?

请注意:在数据框中,setosa …

python matplotlib scatter-plot pandas seaborn

1
推荐指数
1
解决办法
1688
查看次数

更新散点图的标记形状

散点图对象有一个名为 .set_color 的方法来更新标记的颜色,并使用 .set_offsets 来更新其位置,但如何更新标记形状?

animation matplotlib scatter-plot marker

1
推荐指数
1
解决办法
1676
查看次数

如何更改 sns.scatterplot 上点的大小?

我想在我的点上绘制一个更大尺寸的图表,我已经尝试过sizes=100但它不起作用,

这是代码:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = np.array([[1, 3, 'weekday'], [2, 2.5, 'weekday'],[3, 2.7, 'weekend'], [4, 2.8, 'weekend'], [5, 3, 'weekday'], [6, 3.1, 'weekday'], [7, 3, 'weekday'], [8, 3.1, 'weekday'], [9, 3.1, 'weekday'], [10, 3.1, 'weekend']])

# Creating a data frame with the raw data
dataset = pd.DataFrame(data, columns=['day', 'miles_walked', 'day_category'])

ax = sns.scatterplot(x='day', y='miles_walked', data=dataset, hue='day_category',sizes=100)
# Customize the axes and title
ax.set_title("Miles walked") …
Run Code Online (Sandbox Code Playgroud)

python scatter-plot pandas seaborn

1
推荐指数
1
解决办法
5930
查看次数

Matplotlib 颜色条 log2

我想知道如何使颜色条上的刻度显示为 log2。

import matplotlib.pyplot as plt
from matplotlib import ticker
x = np.arange(1000)
y = x.copy()
c = x.copy()
scatter_plot = plt.scatter(x, y, c=c, cmap='viridis', norm=matplotlib.colors.LogNorm())
formatter = ticker.LogFormatter(2)
cbar = plt.colorbar(scatter_plot, format=formatter)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这给了我这个图像:
彩条图像

正如您所看到的,有一些额外的刻度,但它没有正确应用它们。我希望刻度显示为 log2。任何帮助表示赞赏。

python matplotlib scatter-plot

1
推荐指数
1
解决办法
242
查看次数

scale_y_log10() 影响 ggscatter 中的 p 值

我正在使用 ggpubr 包中的 ggscatter 绘制两个连续变量之间的相关图。我使用的是肯德尔等级系数,p 值自动添加到图表中。我想使用scale_y_log10(),因为其中一个测量值存在很大的差异。然而,在代码中添加scale_y_log10()会影响p值。

样本数据:

sampledata <- structure(list(ID = c(1, 2, 3, 4, 5), Measure1 = c(10, 10, 50, 0, 100), Measure2 = c(5, 3, 40, 30, 20), timepoint = c(1, 1,1, 1, 1), time = structure(c(18628, 19205, 19236, 19205, 19205), class = "Date"), event = c(1, 1, NA, NA, NA), eventdate = structure(c(18779,19024, NA, NA, NA), class = "Date")), row.names = c(NA, -5L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

没有scale_y_log10()的图

ggscatter(data = sampledata, x = "Measure2", y = "Measure1",
      add …
Run Code Online (Sandbox Code Playgroud)

r scatter-plot p-value

1
推荐指数
1
解决办法
205
查看次数

使用 ggpubr::ggscatter() 进行选择性点标记

目前所有点都已标记。如果我只想标记该图中的特定点,而不是所有点,我该如何实现这一点?我想删除所有其他标签,但保留“Herens”、“Payerne”、“Orbe”、“Val de Ruz”、“Lavaux”的标签

data("swiss")
head(swiss)
library(magrittr)
library(dplyr)
library(ggpubr)
# Cmpute MDS
mds <- swiss %>%
  dist() %>%          
  cmdscale() %>%
  as_tibble()
colnames(mds) <- c("Dim.1", "Dim.2")
# Plot MDS
ggscatter(mds, x = "Dim.1", y = "Dim.2", 
          label = rownames(swiss),
          size = 1,
          repel = TRUE)
Run Code Online (Sandbox Code Playgroud)

电流输出

在此输入图像描述

源代码取自http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/122-multiDimension-scaling-essentials-algorithms-and-r-code/

r scatter-plot ggplot2 ggpubr

1
推荐指数
1
解决办法
623
查看次数