【问题标题】:overlay interaction visual in pythonpython中的叠加交互视觉效果
【发布时间】:2020-02-25 14:26:33
【问题描述】:

我想可视化两个数据之间的交互。原始(绿色)和预测(棕色)。顶线的长度从 200 到 -20,底线的长度从 -20 到 200。

对于上表,我想用下面的格式可视化

到目前为止我尝试过的代码

    def newline(p1, p2, color='black'):
      ax = plt.gca()

   fig, ax = plt.subplots(1,1,figsize=(5,5), dpi= 60)
   ax.hlines(y=1, xmin=-20, xmax=200, color='black', alpha=0.7)
   ax.hlines(y=1.1, xmin=-20, xmax=200, color='black', alpha=0.7)


   plt.rcParams['xtick.bottom'] = plt.rcParams['xtick.labelbottom'] = True
   plt.rcParams['xtick.top'] = plt.rcParams['xtick.labeltop'] = True
   ax.yaxis.set_visible(False)
   plt.box(False)        

【问题讨论】:

  • 请展示您的尝试。这不是免费的编码服务。
  • 从一些 matplotlib 示例开始
  • 请张贴您的代码图片并说明您的方法。你有什么想法来解决它?

标签: python plot graph data-visualization visualization


【解决方案1】:
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd

def newline(p1, p2, color='black'):
ax = plt.gca()

df = pd.read_excel('visual.xlsx', sheet_name='Sheet2')
prediction_list = df['prediction'].tolist()
originale_list = df['original'].tolist()
result_prediction = []
result_original = []

for i in range(len(prediction_list)):
temp = []
test = prediction_list[i].split('&')
for j in range(len(test)):
temp = []
temp.append(200 - int(test[j].split(':')[0]))
temp.append(int(test[j].split(':')[1]))
result_prediction.append(temp)

for i in range(len(originale_list)):
temp = []
test = originale_list[i].split('&')
for j in range(len(test)):
temp = []
temp.append(200 - int(test[j].split(':')[0]))
temp.append(int(test[j].split(':')[1]))
result_original.append(temp)

fig, ax = plt.subplots(1,1,figsize=(20,5), dpi= 60)
ax.hlines(y=1, xmin=200, xmax=-20, color='black', alpha=0.7)
ax.hlines(y=2, xmin=200, xmax=-20, color='black', alpha=0.7)                                                                                                                                                                                                                                                     -20')

for i in range(len(result_prediction)):
plt.plot(result_prediction[i], [2, 1], color='brown')
for i in range(len(result_original)):
plt.plot(result_original[i], [2, 1], color='green')

plt.rcParams['xtick.bottom'] = plt.rcParams['xtick.labelbottom'] = True
plt.rcParams['xtick.top'] = plt.rcParams['xtick.labeltop'] = True
ax.yaxis.set_visible(False)
plt.box(False)

plt.savefig('test.png')
plt.show()

这对你有帮助。

谢谢

【讨论】:

  • 这对你有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2016-09-03
  • 1970-01-01
  • 1970-01-01
  • 2019-04-26
  • 1970-01-01
相关资源
最近更新 更多