我有以下数据框: >>> 60.1 65.5 67.3 74.2 88.5 ... A1 0.45 0.12 0.66 0.76 0.22 B4 0.22 0.24 0.12 0.56 0.34 B7 0.12 0.47 0.93 0.65 0.21 ... 我正在尝试创建线路绘图,并能够启用/禁用某些行(例如显示或隐藏传说中的某些项目).我发现%matplotlib notebook def on_pick(event): # On the pick event, find the original line corresponding to the legend # proxy line, and toggle its visibility. legline = event.artist origline = lined[legline] visible = not or
以下是关于 line-plot 的编程技术问答
我正在尝试使用twinx()创建一个条形/线组合图,并在条上可见线.目前这就是出现的方式: 我还需要在左垂直轴(AX)和右侧(AX2)的栏上绘制线图.如果我在第二个轴上绘制线路确实出现在顶部,但是显然它出现在错误的轴上(右) 这是我的代码: self.ax2=ax.twinx() df[['Opportunities']].plot(kind='bar', stacked=False, title=get_title, color='grey', ax=self.ax2, grid=False) ax.plot(ax.get_xticks(),df[['Percentage']].values, linestyle='-', marker='o', color='k', linewidth=1.0) lines, labels = ax.get_legend_handles_labels() lines2, labels2 = s
我试图将熊猫数据框架的两列相互绘制,并由第三列中的值分组.每条线的颜色应由第三列确定,即每组颜色. 例如: import pandas as pd from matplotlib import pyplot as plt fig, ax = plt.subplots() df = pd.DataFrame({'x': [0.1,0.2,0.3,0.1,0.2,0.3,0.1,0.2,0.3],'y':[1,2,3,2,3,4,4,3,2], 'colors':[0.3,0.3,0.3,0.7,0.7,0.7,1.3,1.3,1.3]}) df.groupby('colors').plot('x','y',ax=ax) 如果我这样做,我最终会出现三个不同的线,将x绘制在y上,每行都有不同的颜色.我现在想通过"颜色"中的值来确定颜色.我该如何使用梯度菌落? 解决方案 看起来Seaborn正在根据色调中的值自动应用颜色强度. import pandas a
我想要一个线图来指示是否缺少一块数据,例如: 但是,下面的代码填充丢失的数据,创建了一个潜在的误导图表: import pandas as pd import seaborn as sns from matplotlib import pyplot as plt # load csv df=pd.read_csv('data.csv') # plot a graph g = sns.lineplot(x="Date", y="Data", data=df) plt.show() 我应该更改代码以避免填充缺失值? CSV看起来如下: Date,Stagnation 01-07-03, 01-08-03, 01-09-03, 01-10-03, 01-11-03, 01-12-03,100 01-01-04, 01-02-04, 01-03-04, 01-04-04, 01-05-04,39 01-06-04, 01-07-04, 01-08-04,53 01-
使用带有共享X轴的Seaborn绘制A 热图,放置热图的tick滴在热图杆的中间. 因此,底线图将继承Heatmap Tick的位置和标签,而不会反映真实数据,因为线路式刻度应从零开始. 换句话说,我需要将两个图的刻度从X轴原点开始(最佳)开始,或者将线拼朝右边的右边移动,将右图的一半移动到右边标签(hacky). 下面的代码迅速重现了该问题: f,[ax_heat,ax_line]=plt.subplots(nrows=2,figsize=(10, 8),sharex=True) data_heat = np.random.rand(4, 6) data_line= np.random.randn(6,1) sb.heatmap(data=data_heat,robust=True, center=0,cbar=False, ax=ax_heat) sb.lineplot(data=data_line, ax=ax_line) 解决方案 这是一个骇客的
在我的数据中阅读了我的数据后,我有两个内部变量Goats和GoatPositions,看起来像这样: > Goats GPS_No Goat_ID GoatName 1 5 660294 SIVKA 2 6 777077 MESI 3 7 660300 TONAKA 4 8 630328 ISKREA 5 9 608418 RIBEA 6 10 660290 OTA 和 > GoatPositions 2020-07-13 18:00:00 2020-07-14 08:00:00 2020-07-14 18:00:00 2020-07-15 08:00:00 1 33 46 NA 44 2
这是上一个问题的参考 两行matplotib动画 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation x = np.arange(130, 190, 1) y = 97.928 * np.exp(- np.exp(- 0.1416 *( x - 146.1 ))) z = 96.9684 * np.exp(- np.exp(-0.1530*( x - 144.4))) fig, ax = plt.subplots() line1, = ax.plot(x, y, color = "r") line2, = ax.plot(x, z, color = "g") def update(num, x, y, z, line1, line2): line1.set_data(x[:num], y[:num]) line2.set_
多年来,我正在尝试制作一个线图,显示一个数据框中的一列(类型)的不同类别.我已经设法创建了这些行,但是现在我的X轴显示了日期,再加上一种类型,我似乎无法摆脱这一点.我希望它仅在X轴上显示一年. 这是我到目前为止所拥有的: ctdf = df.groupby(["year"])["type"].value_counts().unstack(fill_value=0).stack() print(ctdf) from matplotlib import pyplot as plt fig, ax = plt.subplots() # key gives the group name (i.e. category), data gives the actual values for key, data in ctdf.groupby('type'): data.plot(x='year', ax=ax, label=key, legend=True) plt.xt
我是Seaborn的新手,并且随着时间的推移,我正在为多种类型的游戏绘制销售.当我将它们绘制在一起时,Seaborn似乎正在使数据正常化,但我希望我的Y轴显示未确定全球销售价值. 为了避免这种情况,我尝试将sns.lineplot()中的估算器设置为None. . 当我将估算器设置为=None的线路图时,我的数据突然获得了所有" Spikey".我首先认为我的数据集每年都有多个值,或者出于某种原因而在其中有大量值,但事实并非如此.对于某些类型,某些年份没有数据, 每年都具有具有数据的流派. 这里没有禁用估计器... plt.figure(figsize=(20,10)) sns.lineplot(data=line_df,x='Year',y='Global_Sales',hue='Genre',ci=None) plt.show() ,当我禁用它并且线条" Spikey" ... 时,这就是IT plt.figure(figsize=(20,10)) sns.l
如何使用Python matplotlib创建线条图,以使线的颜色在另一个系列中变化? 对于一个简单的示例: import numpy as np import matplotlib.pyplot as plt t = np.arange(0.0, 2.0, 0.01) y = np.sin(2 * np.pi * t) z = (t-1) ** 2 fig = plt.figure() ax = plt.axes() ax.plot(t, y) ax.plot(t, z) plt.show() 而不是: 我只想以某种方式代表z之后的z值(cmap),例如"等离子体". 编辑: 这个问题被标记为可能重复,但引用了问题所需的结果是线更改颜色的地方,以帮助遵循绘制的路径(序列信息),而不是添加有关另一个值的信息(在这种情况下为z). 它更靠近 解决方案 使用from colorline import colorline colorline(t,
我正在同一页面上绘制三个子图.我想在所有子图中画一条水平线.以下是我的代码和结果图:(您可以注意到我可以在其中一个图上获得水平线,但不是全部) gs1 = gridspec.GridSpec(8, 2) gs1.update(left=0.12, right=.94, wspace=0.12) ax1 = plt.subplot(gs1[0:2, :]) ax2 = plt.subplot(gs1[3:5, :], sharey=ax1) ax3 = plt.subplot(gs1[6:8, :], sharey=ax1) ax1.scatter(theta_cord, density, c = 'r', marker= '1') ax2.scatter(phi_cord, density, c = 'r', marker= '1') ax3.scatter(r_cord, density, c = 'r', marker= '1') ax1.set_xlabel('Theta
我想从我的Seaborn Lineplot Legend中删除标题.我尝试使用这个答案无用: import matplotlib.pyplot as plt import seaborn as sns; sns.set() fmri = sns.load_dataset("fmri") fig, ax = plt.subplots() g = sns.lineplot(x="timepoint", y="signal", hue="event", data=fmri, ax=ax) ax.legend().set_title('') 如果我尝试将标题设置为None,我会得到相同的情况.有趣的是,将标题设置为其他事物似乎已经预先到现有标题: ax.legend().set_title('Something else') 看来Seaborn将标题视为隐藏的传奇条目.我该如何解决? 解决方案 重要:此答案是关于使用hue的情况.在所有其他情况下,问题本身都已经包含了
我一直在尝试使用jupyter实验室上的Altair进行一些交互式图. 我已经到达了下面的结果. 您可以看到,突出显示的线不会弹出前面.我该如何使其弹出前面? 附件是代码. import altair as alt source = df selection = alt.selection_multi(fields=['class'], on='click') color = alt.condition(selection, alt.Color('class:O', legend=None, scale=alt.Scale(scheme='category10')), alt.value('lightgray')) base = alt.Chart(source).mark_line(point=True, size=10)
我有两组数据 int[] x1 = {1,2,3,4,5,6,7,8,9,10}; int[] y1 = {1,2,3,5,6,8,9,10,14,11}; int[] x2 = {1,2,3,4,5,6,7,8,9,10}; int[] y2 = {0,2,3,5,0,8,9,8,14,11}; int[] z2 = {1,2,3,1,2,3,1,2,3,1}; 我想将x1,y1绘制为XYLineChart,然后将绘图x2,y2绘制为没有线的同一地块上的散点. 我还需要xy,y2的每个散点点,取决于z2 (1=Color.red, 2=Color.green, 3=Color.blue) 的值 我该怎么做? 到目前为止,我有: JPanel panel_1 = new JPanel(); panel_1.setLayout(new BorderLayout(0, 0)); XYSeriesCollection dataset = new XYSeri
我正在尝试使用流媒体数据构建一个散景应用,这些数据在基于囚犯困境代理的模型中生成它们时,这些数据追踪多个"策略".我遇到了一个问题,试图让我的线条图不会在一行中连接所有数据点.我汇集了这个小型演示脚本,可以复制这个问题.我在Bokeh Plots中读过大量的文档和Multi_line渲染,但我刚刚没有找到似乎匹配我的简单案例的东西.您可以运行此代码,它将在localhost自动打开Bokeh服务器:5004 ... from bokeh.server.server import Server from bokeh.application import Application from bokeh.application.handlers.function import FunctionHandler from bokeh.plotting import figure, ColumnDataSource from bokeh.models import Button from bok
我正在构建带有刻面网格的GGPLOT2图.在我的Y轴上是百分比,我的X轴是(数字上)的浓度.每个方面有3组(0、24和48小时) ggplot(data=MasterTable, aes(x=Concentration, y=Percentage, group=Time)) + geom_point() + geom_line() + facet_grid(Chemicals ~ Treatments) 这会生成连续的X轴.由于这些值的分布不均匀,因此我希望一个离散的轴来更好地可视化数据.我跟随遵循教程没有运气.第一个数字正是我要做的. 我还尝试格式化轴: scale_x_discrete(labels("0", "0.1", "2", "50")) 和格式化行: geom_line(aes(Time)) 和跟随此教程. 我认为这个问题是X轴上的值是整数而不是字符串.这使默认轴连续.我该如何更改?我确定解决方案很简单,我只是无