code: def draw_core(self, limit_size=Const.DEFAULT_LIMIT_SIZE):
      prob = np.array(self.data["probability"])
      gt = np.array(self.data["gt"])
      num_sample = len(prob)
      if num_sample > limit_size:
          idx = np.random.rand(num_sample) < limit_size / num_sample
          prob = prob[idx, 1]
          gt = gt[idx]
      else:
          prob = prob[:, 1]
  
      data_frame = {"predict_prob": prob, "gt": gt}
      df = pd.DataFrame(data_frame)
      self.label_ax = sns.violinplot(x="gt", y="predict_prob", data=df)
  
imports: import matplotlib.pyplot
  import numpy
  import pandas
  import seaborn
  import xai.constants
  from wordcloud import WordCloud
  import shap
  from xai.graphs.basic_graph import Graph
  from typing import List
  from collections import Counter
  import operator
  from xai.data.exceptions import NoItemsError
label_desc: Use image node_id 2 for calling the ResultProbability obj's underlying member method code with example usage: obj.draw_core(limit_size) without return types