【发布时间】:2017-09-29 10:26:59
【问题描述】:
我有以下熊猫数据框:
import pandas as pd
df = pd.read_table(...)
df
>>> df
>>> interval location type y_axis
0 01 1230 X 50
1 01 1609 X 55
2 01 1903 Y 54
3 01 2574 A 58
4 01 3151 A 57
5 01 3198 B 46
6 01 3312 X 50
... .....
02 42 X 31
02 214 A 23
02 598 X 28
....
有几个间隔,例如01、02 等。在每个区间内,数据点位于 1 到 10,000 的范围内。在df 中,第一个数据点在 40,下一个在 136,依此类推。
间隔02 的范围也从 1 到 15,000。
我想创建一个散点图,以便为每个间隔按比例绘制 1 到 15000 的范围。然后第一个点将绘制在 1230 处,下一个点绘制在 1609 处,等等。我还想要一条垂直线来显示间隔的位置。散点图的 x 轴间距应为 1 到 10,000。每个区间都是一个“区域”,包含从 1 到 10,000 的 x 轴。所以x轴上的坐标是interval1:1到15000,interval2:1到15000,interval 3:1到15000等。(几乎就像几个单独的散点图串联在一起。)
如何做到这一点?如果没有这种复杂的区间,如果希望从此 DataFrame 创建散点图,可以使用:
df.plot(kind='scatter', x = "location", y = "y_axis")
这里是前 50 行:
d = {"interval" : ["01",
"01", "01", "01", "01", "01", "01", "01", "01", "01", "01", "01",
"01", "01", "01", "01", "01", "01", "01", "01", "01", "01", "01",
"01", "01", "01", "01", "01", "01", "01", "01", "01", "01", "01",
"01", "01", "01", "01", "01", "01", "01", "01", "01", "01", "01",
"01", "01", "01", "01", "01"], "location" : [1230, 1609,
1903, 2574, 3151, 3198, 3312, 3659, 3709,
3725, 4172, 4542, 4860, 4900, 5068, 5220,
5260, 5339, 5442, 5529, 5773, 6128, 6165,
6177, 6269, 6275, 6460, 7167, 7361, 7361,
8051, 8222, 8305, 8992, 9104, 9439, 9844,
10045, 10764, 10787, 11104, 11478, 11508,
11684, 12490, 12590, 12794, 12803, 13823,
13982], "type" : ["X", "X", "Y", "A", "A",
"B", "X", "X", "X", "B", "B", "A", "A", "A", "B", "B", "X",
"B", "Y", "X", "X", "Y", "Y", "C", "A", "X", "X", "Z", "Z",
"B", "X", "X", "A", "A", "Y", "X", "A", "X", "X", "Z", "Z",
"C", "X", "Y", "Y", "Z", "Z", "Z", "Z", "Z"], "y_axis" : [50, 55,
54, 58, 57, 46, 50, 55, 46, 42, 56, 55, 55, 45, 52, 51, 45, 48, 50,
49, 53, 55, 45, 40, 49, 37, 52, 58, 52, 4, 58, 52, 49, 58, 50, 55,
56, 53, 58, 43, 55, 55, 44, 52, 59, 49, 53, 39, 60, 52]}
【问题讨论】:
-
理解您的问题有点困难,因为存在一些不一致之处。 (1)
dt是指df吗? (2) 你说第一个数据点是 40,第二个是 136。但是这些值在你的示例数据中在哪里? (3) 您的前 50 行仅包含一个interval值。您能否提供捕获多个间隔的示例数据? (4) 如果您可以提供草图或链接到您想要的情节示例,将会很有帮助 - 根据您的描述,这并不容易可视化。 -
我什至会认为这个问题完全不清楚,因此无法回答。
-
@andrew_reece 抱歉。我更正了一些值。 (1) 现在都是
df(2) 看示例数据 (3) 事情很快就会变大。想象一下location、type、y_axis的相同数据,除了interval的值全部为02。我将提供一个示例图 -
@andrew_reece 这是我的意思的一个例子。这是一个散点图,已划分为几个区域。 imgur.com/a/l6BvG 每个区域都有相同的数据点间隔,从 1 到 15000。因此设置 x 轴很棘手,因为这些点将混合在一起。我现在说得通吗?
-
@ImportanceOfBeingErnest 给定编辑/cmets,现在清楚了吗?
标签: python pandas matplotlib dataframe scatter-plot